Visual studio 2010 在VS2010中读取.txt文件

Visual studio 2010 在VS2010中读取.txt文件,visual-studio-2010,fopen,Visual Studio 2010,Fopen,我正在尝试读取一个文本文件并将内容显示在屏幕上。该文件只是一个单词列表。我已将.txt文件放在项目树中,但代码不会打开它。我的问题是.txt文件放错地方了吗?fopen是执行此操作的正确功能吗?我在绕圈子,这看起来很简单 该文件存储在ProjectName-Source Files-file.txt下的目录中 到目前为止,我的代码是: int main (void) { char word [30]; FILE *fp; if ((fp = fopen("sort.txt"

我正在尝试读取一个文本文件并将内容显示在屏幕上。该文件只是一个单词列表。我已将.txt文件放在项目树中,但代码不会打开它。我的问题是.txt文件放错地方了吗?fopen是执行此操作的正确功能吗?我在绕圈子,这看起来很简单

该文件存储在ProjectName-Source Files-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;
}

问题解决了。我在项目中重新创建了一个文本文件,方法是右键单击源文件,然后选择“添加新项”,然后在“实用程序”选项下选择“文本文件”。然后我将原始文本文件数据复制到其中。然后在适当的目录中创建该文件。简单的解决方案!快乐的新手程序员

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

使用托管语言,您有能力对任何文件使用复制,但C++没有。因此,要将特定文件复制到输出目录,需要添加生成后事件:

右键单击C++项目并选择属性 展开“配置属性” 展开“生成事件” 单击“生成后事件” 将副本$ProjectDirsort.txt$OutputPath粘贴到“命令行”框中 单击“确定”
现在,在构建时,sort.txt应该复制到与可执行文件相同的位置。请注意,尽管sort.txt看起来像是在“Source Files”文件夹中,但至少在默认情况下不是这样。

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

谢谢,是的,我的意思是sort.txt!你和约翰都没有提出相同的解决方案,这是个好消息。坏消息是我不知道怎么做!当我右键单击fle并选择“属性”时,我没有任何复制选项。我所看到的只是一个配置wondow。对不起,我是个笨蛋,但我是个新手!您是否右键单击Visual Studio?您看到了哪些配置?是的,通过VS。它显示了常规配置属性,并表示文件未从生成中排除,并且项目类型未参与生成…它不起作用。现在,它在生成时失败,出现以下错误:1>PostBuildEvent:1>“I:\File Pointer\File Pointer\sort.txt”未被识别为内部或外部命令、1>可操作程序或批处理文件。1> C:\Program Files x86\MSBuild\Microsoft.Cpp\v4.0\Microsoft.cppcomon.targets113,5:错误MSB3073:命令I:\File Pointer\File Pointer\sort.txt I:\File Pointer\Debug\1>C:\Program Files x86\MSBuild\Microsoft.Cpp\v4.0\Microsoft.cppcomon.targets113,5:错误MSB3073::VCEnd已退出,代码为9009。1> 1>生成失败。我没有在需要粘贴的命令中包含“复制”。很抱歉