作者zptdaniel (忠言本逆耳,实愿君向善.)
看板C_and_CPP
标题[问题] C语言 输入资料时的格式
时间Fri Oct 23 16:52:41 2009
我现在要用C写的程式它的input的格式如下
(a,b,c) 其中a,b,c均为int
能不能够直接用scanf直接读取这样的input data
然後将a,b,c存入变数中呢?
还是我得用到strtok @@?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.233.43.76
1F:推 tiyun:scanf("%*c%d%*c%d%*c%d%*c",&a,&b,&c); 10/23 17:00
你好,我用了你的方法. 部分的code如下
while(scanf("%*c%d%*c%d%*c%d%*c",&x1,&x2,&h)!=EOF){
printf("%d %d %d\n",x1,x2,h);
假如我输入(1,5,7)
会显示 1 5 7
再输入(2,8,9)
会显示 1 5 7
2 8 9
再输入(3,7,6)
会显示 2 8 9
3 7 6
请问要如何解决这个状况呢? 是否跟buffer有关?
※ 编辑: zptdaniel 来自: 118.233.43.76 (10/23 17:17)
2F:→ tiyun:while(scanf("\n%*c%d%*c%d%*c%d%*c",&x1,&x2,&h)!=EOF) 10/23 17:25
3F:→ zptdaniel:谢谢! 我刚刚用了fflush(stdin)也完成这个动作 10/23 17:31
4F:→ zptdaniel:不过我有另外一个问题 如果我用 fscanf的话 加上\n可行 10/23 17:32
5F:→ zptdaniel:那如果改用fflush()我该给哪个参数呢? 10/23 17:32
6F:→ zptdaniel:还是说fflush只能用於键盘Input的时候? 10/23 17:33
7F:推 tiyun:跟fscanf的stream一样 10/23 17:35
8F:→ zptdaniel:喔..不大了解您的意思^^" 10/23 17:39
9F:推 tiyun:看看它们的参数 int fscanf ( FILE * stream, ...); 10/23 17:41
10F:→ tiyun:int fflush ( FILE * stream ); 10/23 17:42
11F:推 LPH66:请勿使用 fflush(stdin).... 10/23 17:54