【发布时间】:2013-06-09 16:52:50
【问题描述】:
我正在编写一个简单的程序,它以这种格式获取有关人员的数据: 姓名、年龄、性别、信息
它会像这样显示它们 [姓名:,年龄:,性别:,信息:]
到目前为止,这是我的代码:
#include <stdio.h>
int main() {
char name[10];
int age;
char gender[2];
char info[50];
while(scanf("%9[^,],%i,%c,%49[^\n]", name, &age, gender, info) == 4) {
printf("[name: %s, age: %i, gender: %c, info: %s]\n", name, age, gender, info);
}
return 0;
}
所以我决定使用 > 将我的输出写入另一个文本文件。并且它不会正确显示,] 括号显示在新行上,而 [name: 本身显示。
这是我的输入:
eliza,7,F,likes animals
bob,9,M,fast at running
sue,6,F,likes painting
输出是:
[name: eliza, age: 7, gender: J, info: likes animals
]
[name:
bob, age: 9, gender: J, info: fast at running
]
[name:
sue, age: 6, gender: J, info: likes painting
]
有人可以帮忙吗?我不知道为什么它会这样打印数据,我尝试使用 strstr() 检查我的任何变量是否包含换行符。
【问题讨论】:
-
我猜这是Windows?
-
是的,这有什么影响吗?
-
是的; Windows 中的行尾是
\r\n而不仅仅是\n -
@Dave ,你是对的.....正在开发solaris。为答案 +1。
-
我在 Windows 上测试了 thsi,但在
info末尾没有得到新行。致 OP:您使用的是什么编译器,如何输入?