c - 从文件中读取行,仅打印与用户选择的字母数量相同的行

标签 c file

我正在尝试编写代码,您可以在其中选择要打印的单词(如果它们与您选择的字母数量相同)。

如果您选择只打印包含 3 个字母的单词,它将忽略较长或较短的单词。

如果字母数与用户想要的相同,我不知道如何写一个单词。

这就是我到目前为止所拥有的。

do
{
   ch = fgetc( fp );

   if ( ch == ' ' || ch == EOF || ch == '\n' )
   {
      if(count == n) {
       /* Here should be printed the word */
      count = 0;
      }
      else count = 0;
   }
   else
   {
      ++count;
   }
} while ( ch != EOF );

最佳答案

您必须将字母存储在数组中,以便在需要时可以打印数组的内容。

char word[256];
do
{
   ch = fgetc( fp );

   if ( ch == ' ' || ch == EOF || ch == '\n' )
   {
      if(count == n) {
          /* Here should be printed the word */
          word[count] = '\0'; // terminate word
          printf("%s\n", word); // print word
          count = 0;
      }
      else 
          count = 0;
   }
   else
   {
      word[count] = (char)ch;  // save the characters
      ++count;
   }
} while ( ch != EOF );

关于c - 从文件中读取行,仅打印与用户选择的字母数量相同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59144242/

相关文章:

java - 以原子方式移动和重命名 Path 实例

java - 如何从Java文件元数据权限中获取用户名?

c - 为什么 main 函数总是要返回一些东西?

c - 用户输入 - C(不允许某些字符)

c - 非阻塞套接字连续文件传输

c++ - 检查 C++ 中是否存在文件的最佳方法是什么? (跨平台)

CodeChef ATM 简单级别 : Uses Casting, 条件。代码不被接受

c++ - 我在哪里可以找到涵盖 K&R1/2、C89-C1X 及其来源的 C(和/或 C++)关键字列表?

c# - 在 C# 中创建 RTF 文件的正确方法是什么?

java - 将一个文件的内容重复写入另一个文件并进行特定替换