在VS2010中读取.text文件

时间:2013-02-15 18:16:05

标签: visual-studio-2010 fopen

我正在尝试阅读文本文件并将内容显示在屏幕上。该文件只是一个单词列表。我已将.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选项下选择文本文件,在我的项目中重新创建了一个文本文件。然后我将原始文本文件数据复制到其中。然后在适当的目录中创建该文件。简单方案!快乐的新手编码器!!

2 个答案:

答案 0 :(得分:0)

由于您要打开相对路径,因此需要将File.txt与.exe位于同一文件夹中。当然,我假设当你编写File.txt时,你的意思是sort.txt,因为那是你的代码所引用的。

使用托管语言,您可以对任何文件使用“始终复制”,但使用C ++,则不能。因此,要将特定文件复制到输出目录,您需要添加一个Post-Build事件:

  • 右键单击C ++项目并选择属性
  • 展开“配置属性”
  • 展开“构建活动”
  • 点击“建设后活动”
  • copy "$(ProjectDir)sort.txt" "$(OutputPath)"粘贴到“命令行”框中
  • 点击“确定”

现在,在构建时,应将sort.txt复制到与可执行文件相同的位置。请注意,即使它看起来像sort.txt在'源文件'文件夹中,它实际上不是(至少在默认情况下)。

答案 1 :(得分:0)

您的代码将被编译到解决方案中的bin文件夹中。打开的文件在bin文件夹中查找与.exe相同位置的文件。如果单击解决方案文件夹中的文件,右键单击并选择属性,然后将选项“复制到输出目录”设置为“始终复制”,VS将该文件复制到与exe相同的位置。