我正在使用 CodeBlocks、GCC 和 C 语言编写。我的代码如下:
char word[50];
FILE *fn;
fn = open("word.txt", "rb");
if(fn == NULL) perror("File not opened");
while(!feof(fn))
{
fscanf(fn, "%s", word);
}
文本文件中只有一个单词(目前是“batman”)。我尝试了此代码的各种版本,包括以下内容:
char* word;
char = malloc(50);
FILE *fn;
fn = open("word.txt", "rb");
if(fn == NULL) perror("File not opened");
while(!feof(fn))
{
fscanf(fn, "%s", &word);
}
老实说,我不知道为什么(以及为什么这应该如此困难),但 CodeBlocks 给我的错误是 feof 行中可怕的 SIGSEV 分段错误。当我没有执行 while 循环时, fscanf 会引发分段错误。请帮忙!我不经常使用 C 语言工作,现在我记得为什么了。即使是最简单的事情也可能如此困难。提前致谢。
更新:我实际上已经通过将开放行更改为:
fn = fopen("C://Temp//word.txt", "rb");
这如何与相对路径一起使用?