l605361413 发表于 2015-4-11 15:29:27

内存错误!

#include<stdio.h>
int main()
{
        FILE *fp;
        int i = 0;
        char ch, str;
        if (fp = fopen("D:\\桌面\\1.txt", "r") == NULL)
        {
                printf("文件未打开!");
                return 0;
        }

        do
        {
                ch = fgetc(fp);
                if (ch == 10)
                {
                        printf("%s\n", str);
                        fseek(fp, 1, 1);
                        i = 0;
                }
                str = ch;
                i++;
        } while (ch != EOF);

        fclose(fp);
        return 0;
}
调试了一下
可以编译为什么一到ch = fgetc(fp)就出错退出呢?

haiouda 发表于 2015-4-11 20:57:18

改成这样就oK,if (!(fp = fopen("d:\\桌面\\1.txt", "r")))

我里我也是刚刚学过,感觉是文件没有正常打开;

haiouda 发表于 2015-4-11 21:05:44

本帖最后由 haiouda 于 2015-4-11 21:09 编辑

明白了,你if 这里错了;
这样写就对了:if ((fp = fopen("d:\\桌面\\1.txt", "r"))==NULL)

说白一点,就是 “=”和“==”的优先级你没搞懂!

l605361413 发表于 2015-4-11 22:00:49

haiouda 发表于 2015-4-11 21:05
明白了,你if 这里错了;
这样写就对了:if ((fp = fopen("d:\\桌面\\1.txt", "r"))==NULL)



对啊忘加括号了:shy:
页: [1]
查看完整版本: 内存错误!