gpt4 book ai didi

c - 此程序中 c ( char line[LINE_SIZE]; ) 和 (char *result) 中的 2 个变量之间的区别

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

一个非常简单的 c 程序,它从文件中读取并在终端上输出。这里的 result 和 line 有什么区别?例如,如果我在 while 循环内打印 (result) 或 (line),则两者的输出相同。

printf("%s", line);
printf("%s", result);

但是在 while 循环的条件下,如果我替换

while(result !=NULL)

while(line != NULL)

它不会停止。源代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
const int LINE_SIZE = 1000;

FILE *infile;
char *result;

char line[LINE_SIZE];

infile = fopen("in.txt", "r");
result = fgets(line, LINE_SIZE, infile);
while(result != NULL)
{
//printf("%s", line);
printf("%s", result);
result = fgets(line, LINE_SIZE, infile);

}
return 0;
}

最佳答案

while(line != NULL)

line 是一个数组。如果您只写 line,它将总是返回指向其第一个元素(这里是一个字符)的指针。因此,上述条件将始终为真。

fgets 函数在成功时返回您的数据指针,在失败时返回 NULL(例如,当已到达文件末尾且无法读取任何字符时)。

关于c - 此程序中 c ( char line[LINE_SIZE]; ) 和 (char *result) 中的 2 个变量之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19994928/

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