这个strcat函数的问题出在哪里?

suncs2001 2007-11-13 09:59:11
我写的一个小程序,想实现从文本文件里读取一个一个字符,然后将字符用strcat函数连接起来,遇到文件结束就停止.

#include<iostream.h>
#include<stdio.h>
#include<string.h>


void main()
{
char dest[20]="";
char* temp=new char [1];
FILE* fp;
if((fp=fopen("1.txt","r"))==NULL)
{
cout<<" read error!"<<endl;

}
char ch=fgetc(fp);
dest[0]=ch;
while(ch!=EOF)
{
ch=fgetc(fp);
temp[0]=ch;

strcat(dest,temp);
}
cout<<dest<<endl;

}

我的文本输入是"haha",而程序输出是"ha h a"不知道是什么原因.
当然一个一个字符输出可以,用某些函数也可以,但是我需要将单词读出来而且有指针指向,因为后面可能需要对单词的每一个字符进行分析.
...全文
93 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
suncs2001 2007-11-14
太感谢了!
回复
kecp 2007-11-14
LS正解,strcat是对字符串进行连接的,
你之前没加个字符串结束标志给它,所以
无法正确运行。
不用strcat也可以这样改

char ch=fgetc(fp);
int i=0;
dest[i++]=ch;
while(ch!=EOF&&i<20)
{
ch=fgetc(fp);
dest[i++]=ch;

}
回复
geniuscaobo 2007-11-13

#include <iostream.h>
#include <stdio.h>
#include <string.h>


void main()
{
char dest[20]= " ";
char* temp=new char [2];
temp[1] = '\0';
FILE* fp;
if((fp=fopen( "1.txt ", "r "))==NULL)
{
cout << " open error! " <<endl;
return;
}
char ch=fgetc(fp);
dest[0]=ch;
while(ch!=EOF)
{
ch=fgetc(fp);
temp[0]=ch;

strcat(dest,temp);
}
cout <<dest <<endl;

}
回复
发动态
发帖子
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告