我的文件永远不会打开?

时间:2018-04-14 05:22:52

标签: c++ file-handling

每当我尝试根据文件制作程序时,我的程序永远无法打开文件本身。

它总是最终在" else"中执行程序的一部分。部分。是因为我的文件可能不在同一个目录中吗?如果是这样,我如何找到我的文件的位置?这是代码。我只是想通过使用文件的概念输入和输出字符串来检查它是否正常工作。

int main()
{
char str1[20], str2[20];
FILE *pFile; 
pFile = fopen("Rocket.txt", "r+"); 

if (pFile != NULL) {
    while (feof(pFile)) {
        cout << "Enter String 1: " << endl; 
        fgets(str1, 20, pFile);  
        cout << "Enter String 2: " << endl; 
        fgets(str2, 20, pFile); 

        cout << "The Strings input are: " << endl; 
        fputs(str1, pFile); 
        fputs(str2, pFile); 

    }

}
else {
    cout << "File not opened." << endl; 
}

1 个答案:

答案 0 :(得分:1)

1)&#34;如何找到文件的位置?&#34;

  • 右键单击您的文件
  • properties-&gt; Details-&gt;文件夹路径或
  • 属性 - &GT;常规 - &GT;位置

例如,如果是C:\Users\user\Desktop,则您撰写的位置为c:\\Users\\user\\Desktop\\Rocket.txt

2)在您的代码中,我发现了两个错误

请注意,在&#34; while条件&#34;你应该写(feof(pFile)==0)(!feof(pFile)),因为它应该继续从文件中读取,直到它到达文件末尾feof(pFile) == 1

&#34;放&#34;写在文件的末尾。因此,当文件标记不在文件的末尾时,它不会在其上写入,除非您的初始文件只有37个字符。所以使用&#34; puts&#34;这不是一个好主意。在这个计划中。相反,您可以使用cout查看str1str2的值。