查看: 1023|回复: 13
|
C programming--sscanf的问题
[复制链接]
|
|
有什么方法可以解决这问题?
例如:message[]="Hallo world";
sscanf(message,"%s",&message2);
printf("%s",message2);
最后我的message2只有输出Hallo,我知道好像是空格的问题,但是不知有什么方法可以解决,尤其是遇到string 很长的时候更是头痛。
我的programming很差,所以希望各位高手能帮忙,谢谢 |
|
|
|
|
|
|
|
发表于 29-3-2006 06:00 PM
|
显示全部楼层
原帖由 wyewh 于 29-3-2006 02:30 AM 发表
有什么方法可以解决这问题?
例如:message[]="Hallo world";
sscanf(message,"%s",&message2);
printf("%s",message2);
最后我的message2只有输出Hallo,我知道好像是 ...
你是要从keyboard输入Hallo world,还是只是把message[]里的string printf出来罢了? |
|
|
|
|
|
|
|
发表于 29-3-2006 06:36 PM
|
显示全部楼层
原帖由 wing_s 于 29-3-2006 06:00 PM 发表
你是要从keyboard输入Hallo world,还是只是把message[]里的string printf出来罢了?
其实是想由keyboard中输入, 然后使用sscanf把全部讯息储入另一单个variable里。
by--wyewh
[ 本帖最后由 tankh 于 29-3-2006 06:42 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 29-3-2006 09:05 PM
|
显示全部楼层
原帖由 tankh 于 29-3-2006 06:36 PM 发表
其实是想由keyboard中输入, 然后使用sscanf把全部讯息储入另一单个variable里。
by--wyewh
那么你要把hallo world输入 message2里面为何好要message的array呢?
你可以这样
char msg[30];
scanf(%s,msg);
printf("%s",msg); |
|
|
|
|
|
|
|
发表于 29-3-2006 11:03 PM
|
显示全部楼层
char msg[30];
scanf("%s",&msg);
如果msg里我打入名字,年龄,讯息
然后我要sscanf把整个msg分类
sscanf(msg,"%s %d %s",&name,&age,&msg2);
例如我打入的讯息: ken 13 he is a boy
然后我打算打算使用printf("%s",msg2);把msg2 print出来
但最后的输出是:
he
而不是
he is a boy
我知道这是whitespace的关系,有什么方法可以解决吗? |
|
|
|
|
|
|
|
发表于 30-3-2006 09:27 AM
|
显示全部楼层
原帖由 tankh 于 29-3-2006 11:03 PM 发表
char msg[30];
scanf("%s",&msg);
如果msg里我打入名字,年龄,讯息
然后我要sscanf把整个msg分类
sscanf(msg,"%s %d %s",&name,&age,&msg2);
例如我打入的讯息: ke ...
用gets |
|
|
|
|
|
|
|

楼主 |
发表于 30-3-2006 11:04 AM
|
显示全部楼层
gets?如何使用?
请问可以解释一下吗?或列出例子
谢谢 |
|
|
|
|
|
|
|
发表于 30-3-2006 11:20 AM
|
显示全部楼层
原帖由 tankh 于 29-3-2006 11:03 PM 发表
char msg[30];
scanf("%s",&msg);
如果msg里我打入名字,年龄,讯息
然后我要sscanf把整个msg分类
sscanf(msg,"%s %d %s",&name,&age,&msg2);
例如我打入的讯息: ke ...
input string好像不用&的
现在没有VC不能试,很久没有动C了不能确定,你看下sscanf("%s %d %s",name,&age,msg2);这样可以吗 |
|
|
|
|
|
|
|
发表于 30-3-2006 12:19 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 30-3-2006 02:49 PM
|
显示全部楼层
原帖由 wing_s 于 30-3-2006 11:20 AM 发表
input string好像不用&的
现在没有VC不能试,很久没有动C了不能确定,你看下sscanf("%s %d %s",name,&age,msg2);这样可以吗
察看了是真的没有&,但不知为何没有。我的program里有加入&,但割了后好像没差别 |
|
|
|
|
|
|
|
发表于 1-4-2006 01:29 AM
|
显示全部楼层
好象%S是不能接受SPACE。。。
试用%[^\n] |
|
|
|
|
|
|
|
发表于 4-4-2006 11:14 PM
|
显示全部楼层
举例:
#include <stdio.h>
void main()
{
char buffer[100];
char name[20];
int age;
char desc[50];
printf("Enter input string: ");
gets(buffer);
sscanf(buffer, "%s %d %[^\n]", name, &age, desc);
printf(
"Name : %s\n"
"Age : %d\n"
"Desc : %s\n", name, age, desc);
}
注:name 不能有空格。
"Alex 36 He is a man" 被接受。
但是,"Alex chong 36 He is a man" 将无法以此程序读取。 |
|
|
|
|
|
|
|

楼主 |
发表于 5-4-2006 03:54 PM
|
显示全部楼层
原帖由 liawcv 于 4-4-2006 11:14 PM 发表
举例:
#include <stdio.h>
void main()
{
char buffer[100];
char name[20];
int age;
char desc[50];
printf("Enter input string: ");
get ...
对哦,[^\n]对后尾的string character有效而已吗?那如果要好像显示ALEX CHONG酱的话就没办法了吗?是否要另外写一段function来解决这问题? |
|
|
|
|
|
|
|
发表于 7-4-2006 05:33 PM
|
显示全部楼层
for scanf [^\n] can be use...
but when display...%s can be use...... |
|
|
|
|
|
|
| |
本周最热论坛帖子
|