已经定义三个字符串变量string a,b,c;磁盘中有一文本文件notes.txt,文本中有一行信息:abcdefg hijklmn opqrst现要求将abcdefg读到a中,hijklmn读到b中,opqrst读到c中,也就是从文本的一开始,将第一个空格前的内容全部读入a,然后再往下,直到再遇到空格,将这之间的内容读到b,以后都是这样,请问代码该怎么写?
int findSpace( char *pSource, char *pTarget ){ int nEnd = 0; while ( 1 ) { if ( *( pSource + nEnd ) == \' \' ) return nEnd; if ( *( pSource + nEnd ) == 0 ) return nEnd; * ( pTarget + nEnd ) = *( pSource + nEnd ); nEnd++; } }void main(){ FILE *fp = NULL; fp = fopen("D:\\\\MyProject\\\\readFile\\\\Debug\\\\notes.txt","r+"); char szBuf[1024] = {0}; char a[1024] = {0}; char b[1024] = {0}; char c[1024] = {0}; fread( szBuf, sizeof( char ), 1024, fp ); int nEnd = 0; nEnd = findSpace( &szBuf[nEnd], a ); nEnd++;// 让过找到的空格 nEnd += findSpace( &szBuf[nEnd], b ); nEnd++;// 让过找到的空格 nEnd = findSpace( &szBuf[nEnd], c ); fclose(fp);}
提问者对答案的评价: |