我有一个名为test.c的程序,以及一个名为test.in的输入文件.我正在尝试从输入文件中读取两个字符串并将它们输出到控制台.我正在运行Windows 7,但我正在使用gcc编译MinGW.
这是我的文件test.c:
#include <stdio.h>
main() {
FILE *fin = fopen ("test.in", "r");
char *one, *two;
fscanf(fin, "%s %s", one, two);
printf("%s\n%s", one, two);
fclose(fin);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我的文件test.in:
ONE
TWO
Run Code Online (Sandbox Code Playgroud)
我去MinGW,运行"gcc -o test.exe test.c",一切编译都很好,但是当我运行test.exe时,弹出窗口出现并说"test.exe已经停止工作.Windows试图找到问题的解决方案......"
有人知道为什么吗?
fscanf正在写你传递它的未初始化的指针.这种影响尚未定义,但可能会发生崩溃.您需要在调用之前分配您的char数组:
#define MAX_LEN (32) /* change this as required */
char one[MAX_LEN];
char two[MAX_LEN];
fscanf(fin, "%s %s", one, two);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |