从文件读取停止工作

时间:2015-03-14 20:56:26

标签: c++

所以我在c ++中遇到了这个问题。

我打开一个文件并用char读取它并将其打印在屏幕上。

直到我将其添加到程序中它才能正常工作。

gr=0; 

完整的计划:

int main()
{
    int gr;
    char *ch;
    gr=0;//this causes the problem

    FILE *fp;
    fp=fopen("as.txt","r");
    do
    {
        *ch=fgetc(fp);
        cout<<*ch<<endl;
    }
    while (*ch!=EOF);
}

2 个答案:

答案 0 :(得分:2)

char *ch;
*ch=fgetc(fp);

你创建了一个指针,但实际上你从来没有指向任何东西。

它似乎在没有gr=0赋值的情况下工作是纯粹的机会,可能是导致内存中值的各种因素的结果。当您取消引用无效指针时,有时会出现分段错误,并且您只是默默地覆盖一些不属于您的内存,从而导致进一步的错误。

无论如何,我不知道你需要什么指针。当然只需声明一个char ch并使用它。

答案 1 :(得分:0)

你的代码在我身上出错了。您可以尝试类似下面列出的代码。

#include <cstdio>
#include <iostream>

int main()
{
    FILE *fp;
    char c;
    fp=fopen("str.cpp","r");
    if(fp != NULL) {
        do {
            c=fgetc(fp);
            std::cout << c << std::endl;
        } while (c!=EOF);
    }
}