gpt4 book ai didi

c - fgets 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 07:15:53 25 4
gpt4 key购买 nike

让fp1指向一个名为file1的文件,fp2指向一个名为file2的文件。 file1 和 file2 完全相同。并且没有文件打开错误。

但是函数 test_fgets 打印出不同的字符串。 printf("%s", lptr1) 行打印出 NULL,但 printf("%s", lptr2) 打印出 file2 的最后一行。

既然file1和file2完全一样,为什么要打印不同的输出呢?

此外,当我尝试将 printf("%s", lptr1) 更改为 printf("%s\n", lptr1) 时,它给了我一个段错误(核心转储)错误。为什么?换行符在这里有什么影响?

...
#define MAXLINE 100
char line1[MAXLINE];
char line2[MAXLINE];

...
void test_fgets(FILE *fp1, FILE *fp2){

char *lptr1;
char *lptr2;

while( (lptr1 = fgets(line1, MAXLINE, fp1)) && (lptr2 = fgets(line2, MAXLINE, fp2)))
;

printf("%s", lptr1);
printf("%s", lptr2);
}

最佳答案

循环运行直到 fgets 失败,由 nullptr 指示。哦,第二个 fgets 没有执行,因为它是一个 && 条件,所以 lptr2 仍然保留它的最后一行。

关于c - fgets 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24702286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com