字符串问题 请教一下!

love1314_2004 2009-08-25 09:06:06
文本文档中有这样的2行数据:
12 2 aa 1
13 3 bbb 2
如何将这两行数据的每一列分别存入不同的变量中?
...全文
129 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
love1314_2004 2009-08-26
  • 打赏
  • 举报
回复
顶起来 谁给我详细点的答案?
就呆在云上 2009-08-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 inwivled 的回复:]
fscanf(file, "%d %d %s %d", ...)
[/Quote]

呵呵
正解
love1314_2004 2009-08-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wangtengchao 的回复:]
上面分离好各个变量 然后分别存入你要的变量,还有提醒一下,你要先打开文件才能读出数据
记录数据结束后要记得关闭文件
[/Quote]
是的 知道!我研究一下了!
超gogo 2009-08-25
  • 打赏
  • 举报
回复
上面分离好各个变量 然后分别存入你要的变量,还有提醒一下,你要先打开文件才能读出数据
记录数据结束后要记得关闭文件
love1314_2004 2009-08-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangtengchao 的回复:]
你可以用CStdioFile类中的readstring函数,
每次回读取一行的内容保存到一个CString的对象中,然后用CString中的left()和right()函数来得到各个部分,例如aa 11 22 中间都只有一个空格  此处的CString对象为s
s.left(2)可以得到aa
s.right(2)可以得到22
s.left(5)可以得到aa 11 ,然后s.left(5).right(2)就可以得到11

像你的情况 各个参数的大小不同,你可以自己固定每个参数的大小,如下面,若第一个和第二个参数规定大小为3,中间都空一个格
aaa 21  432 
你可以用 S2=s.left(7).right(3)得到21+一个空格,然后用S2.Remove(' '),去除空格,就可以得到21

记住,虽然空格看不见,但如果你用来比较的时候,空格会影响比较,所以要去掉

希望对你有帮助
[/Quote]
谢谢!
超gogo 2009-08-25
  • 打赏
  • 举报
回复
你可以用CStdioFile类中的readstring函数,
每次回读取一行的内容保存到一个CString的对象中,然后用CString中的left()和right()函数来得到各个部分,例如aa 11 22 中间都只有一个空格 此处的CString对象为s
s.left(2)可以得到aa
s.right(2)可以得到22
s.left(5)可以得到aa 11 ,然后s.left(5).right(2)就可以得到11

像你的情况 各个参数的大小不同,你可以自己固定每个参数的大小,如下面,若第一个和第二个参数规定大小为3,中间都空一个格
aaa 21 432
你可以用 S2=s.left(7).right(3)得到21+一个空格,然后用S2.Remove(' '),去除空格,就可以得到21

记住,虽然空格看不见,但如果你用来比较的时候,空格会影响比较,所以要去掉

希望对你有帮助
InwIvled 2009-08-25
  • 打赏
  • 举报
回复
fscanf(file, "%d %d %s %d", ...)
wudizuijimo 2009-08-25
  • 打赏
  • 举报
回复
fgets()读取一行放到缓冲冲szBuf,然后用strtok函数分出每一个变量来
函数名: strtok
功 能: 查找由在第二个串中指定的分界符分隔开的单词
用 法: char *strtok(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char input[16] = "abc,d";
char *p;
/* strtok places a NULL terminator
in front of the token, if found */
p = strtok(input, ",");
if (p) printf("%s\n", p);
/* A second call to strtok using a NULL
as the first parameter returns a pointer
to the character following the token */
p = strtok(NULL, ",");
if (p) printf("%s\n", p);
return 0;
}
  • 打赏
  • 举报
回复
C有库函数,按分割符分开,就可以了.

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧