【发布时间】:2017-04-24 01:12:30
【问题描述】:
我不清楚我的程序出了什么问题,这是一个简单的代码来打开一个文件,从中读取第一行,然后打印它。但程序不断崩溃。我的文本文件的实际内容是一句话:测试我的代码。
int main(void)
{
FILE *stream;
char *s;
stream = fopen("input.txt", "r");
fscanf(stream, " %s", &s);
printf("%s", s);
fclose(stream);
return 0;
}
我被指示不要使用 <string.h> 中的库函数
【问题讨论】:
-
1.你不检查
fopen的结果。 2.s是一个未初始化的指针——你认为数据在哪里? -
char s[16]; fgets(s, sizeof s, stream);而不是char *s;...fscanf(stream, " %s", &s); -
如果您使用的是 GCC,请始终使用
gcc -Wall -Werror进行编译。 -
char *s; ... fscanf(stream, " %s", &s);-->char s[100]; fgets(s, sizeof s, stream);