说我需要在两个名称 一样,[name name]\n
读....(可能 更多[name name]\n
。假设名称 可以有19个长度,到目前为止我的代码 是,我怎么居然会防止输入像我的情况[name name name]\n
以上[name name name...]\n
?我听说过与fgets()和的fscanf,但会有人好心告诉我一个例子,如何提前使用它们?谢谢。scanf函数来FGETSç
char name1[20];
char name2[20];
for(int i=0; i < numberOfRow ; i++){
scanf(" %s %s", name1, name2);
}
行,所以我找到了一种方法以确保只有两个元素,但我不知道如何将它们放回变量...
char str[50];
int i;
int count = 0;
fgets(str, 50, stdin);
i = strlen(str)-1;
for(int x=0; x < i ;x++){
if(isspace(str[x]))
count++;
}
if(counter > 1){
printf("Error: More than 2 elements.\n");
}else if{
//How do i place those two element back into the variable ?
char name1[20];
char name2[20];
}
有未定义行为的可能性,如果输入的字符串超过20个字符。改用'%20s%20s'。 – 2011-05-12 11:23:14
您需要考虑空终止符** NOT **正在由'scanf'格式字符串中的'width'说明符计算。一个有20个字符的数组应该有一个对应的'“%19s”'(或''%19 [“')格式的字符串。 – pmg 2011-05-12 11:44:45