strcat(char[] a,char []b)即将第二个字符串追加到第一个字符串末尾,第二个字符串值不变,第一个变长。
你的理解是对的 但是使用有误!追加时需要保证第一个字符串在加上第二个之后依旧不能溢出。在此题中,你的a[]字符串长度在追加上".txt"之后,会溢出,建议在定义a的时候写上char a[100]保证不溢出。
将文件中一行内容按照空格分割进行读取,可以采用fscanf("%s")来实现
实现过程:
定义二维字符数组,用来接收读到的每个单词
以读方式打开文件
循环读文件,将单词逐个读入数组
循环结束后,关闭文件
输出数组中的单词,以验证
参考代码:
#include <stdio.h>int main(void)
{
FILE *fp
int i,j
char words[100][21] //最多读100个单词,每个单词不超过20个字符
fp=fopen("data.txt", "r")
if ( fp==NULL )
{
printf("open file error\n")
return -1
}
for( i=0i<100i++ ) //循环读取,控制不超过100个
{
if ( fscanf(fp, "%20s", words[i] )!= 1 ) //控制每个单词不超过20个
break
}
fclose(fp)
for( j=0j<ij++ ) //反向输出各单词
printf( "%s ", words[j] )
printf("\n")
return 0
}
char szBuff[512] = {0}//前提是要知道每行最长长度
fgets(szBuff,sizeof(szBuff),m_pFile)) //m_pFile是打开文件的句柄。
fgets读取一行内容,再加个循环直到文件结尾
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)