c - 仅打印第 30 行到第 50 行的程序

标签 c operators

<分区>

我正在尝试编写一个程序来读取文件并打印从第 30 行到第 50 行的行,但无法实现。

主要(){

FILE *fp;
char ch;

int nol = 0;
fp = fopen ("test.txt","r");

while (1){
    ch = fgetc(fp);

    if (ch == '\n')
        nol++;


    if (nol > 30 || nol < 50){
        printf ("value of NOL is %d\n", nol);
    }


    if (ch == EOF)
        break;


}
fclose (fp);
printf ("\nNumber of line in file: %d\n", nol);

我尝试使用 if nol >=30 和 nol <=50 条件并尝试打印,但它不起作用。任何输入都会有很大帮助。

最佳答案

“与”运算符是&&,不是||

...

if (ch == '\n')
{    nol++;
     if (nol >= 30 && nol =< 50) 
         printf ("value of NOL is %d\n", nol);
}

如果你想打印行本身而不仅仅是数字,你需要收集字符或其他东西来在找到 '\n' 时打印它。

关于c - 仅打印第 30 行到第 50 行的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14667325/

相关文章:

未知字段的代码复用

c - C语言中的缓存性能(关于循环)

javascript - 具有多个变量的三元运算符

.net - "Math.DivRem"和 % 运算符之间的区别?

使用数组类型时 Swift 3 `+` 运算符错误

jquery - @ 字符在 jQuery 中起什么作用?

c - 更新c中的动态数组

c - C 中的异常处理 - 使 try catch 跨函数工作

在 C 中不使用库函数将 int 转换为字符串?

Scala - 使用 Bounds 理解类定义