我正在尝试阅读文本文件并将内容显示在屏幕上。该文件只是一个单词列表。我已将.txt文件放在项目的树中,但代码不会打开它。我的问题是,.txt文件是在错误的地方吗? fopen是正确的功能吗?我带着它走了几圈,看起来很简单! :(
该文件存储在“ProjectName” - 源文件 - File.txt
下的目录中到目前为止我的代码是:
int main (void)
{
char word [30];
FILE *fp;
if ((fp = fopen("sort.txt", "r")) == NULL)
{
printf( "File could not be opened\n");
}
else
{
fscanf(fp, "%s", word);
while (!feof(fp))
{
fscanf(fp, "%s", word);
}
fclose (fp);
}
return 0;
}
问题解决了。我通过右键单击Source Files然后选择Add New Item并在Utility选项下选择文本文件,在我的项目中重新创建了一个文本文件。然后我将原始文本文件数据复制到其中。然后在适当的目录中创建该文件。简单方案!快乐的新手编码器!!
答案 0 :(得分:0)
由于您要打开相对路径,因此需要将File.txt与.exe位于同一文件夹中。当然,我假设当你编写File.txt时,你的意思是sort.txt,因为那是你的代码所引用的。
使用托管语言,您可以对任何文件使用“始终复制”,但使用C ++,则不能。因此,要将特定文件复制到输出目录,您需要添加一个Post-Build事件:
copy "$(ProjectDir)sort.txt" "$(OutputPath)"
粘贴到“命令行”框中现在,在构建时,应将sort.txt复制到与可执行文件相同的位置。请注意,即使它看起来像sort.txt在'源文件'文件夹中,它实际上不是(至少在默认情况下)。
答案 1 :(得分:0)
您的代码将被编译到解决方案中的bin文件夹中。打开的文件在bin文件夹中查找与.exe相同位置的文件。如果单击解决方案文件夹中的文件,右键单击并选择属性,然后将选项“复制到输出目录”设置为“始终复制”,VS将该文件复制到与exe相同的位置。