标题:到底哪里出了问题 ,运行时程序会崩溃掉
只看楼主
super_lz
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2017-7-12
结帖率:90%
已结贴  问题点数:1 回复次数:2 
到底哪里出了问题 ,运行时程序会崩溃掉
#include<stdio.h>
#include<stdlib.h>
void main()
{
    FILE *in,*out;
    char ch,infile[10],outfile[10];
    printf("输入一个读入文件的名字:");
    scanf("%s",infile);
    if(in = fopen(infile,"r") == NULL)                //打开输入文件
    {
        printf("Cannot open this file!\n");
        exit(0);
    }
    printf("输入一个输出文件的名字:");
    scanf("%s",outfile);
        
    if(out = fopen(outfile,"w") == NULL)
    {
        printf("Cannot open this file!\n ");
        exit(0);
    }
    while(!feof(in))                 //如果未遇到输入文件的结束标志
    {
        ch = fgetc(in);
        fputc(ch,out);
        putchar(ch);
    }
    putchar(10);                     //显示完全部字符后换行
    fclose(in);
    fclose(out);
}
搜索更多相关主题的帖子: 崩溃 out printf 输入 文件 
2017-09-21 22:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:1 
注意文件名字串长
2017-09-21 22:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
楼主得先告诉别人你哪里觉得错了,免得别人所答非汝所问

#include<stdio.h> 中间没加空格,符合C语法,但据我的经验,没有哪个公司的代码检查器能让此代码通过

void main() 按标准应该是 int main( void ) 或 int main( int argc, char* argv[] ) 或其等价形式

scanf("%s",infile); infile只有10个char,不考虑溢出的问题?

if(in = fopen(infile,"r") == NULL) 将 fopen(infile,"r") == NULL 这个_Bool类型赋值给 FILE* 类型,就看不懂欲何为了

while(!feof(in))
{
    ch = fgetc(in); // !feof 不等于就有字符可读取,这种经典的错误代码看看就行了,何必特意写出来把玩

putchar(10); 我不知道为什么要将'\n'写成10,对于变态,我敬而远之
2017-09-22 08:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480861-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.493716 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved