该代码的目标是,如果用户插入大于X个字符的名称,我会请求一个新名称,直到插入带有或少于X个字符的名称。我有休耕代码:只有使用插入的值(如果它的大小合适)
char * getName(){
int size = 4;
int i;
char inserted[10];
char name[4];
while (size > 3){
printf("Insert name, maximum 3 characters: ");
fgets(inserted, 10, stdin);
for (i=0; i<4; i++){
if (inserted[i] == '\n'){
size = 3;
}
}
}
sscanf(inserted,"%s", name);
return name;
}
但似乎它不工作.....我试图调试,但无法找到错误。如果你能够伸出援助之手,那就太好了。
编辑:我编辑的代码,这是错的
编辑:问题不在于如果返回与否的价值,但是是功能停留在一个无限循环 - 没有按“T似乎找到如果单词有正确的长度
将'/ n''改为''\ n''。 '/'不是转义字符。还要注意:退出该函数后,局部变量的地址无效。 – BLUEPIXY 2015-04-02 15:46:55
当它是当前代码中的正确类型时,它似乎会逃脱循环。 – BLUEPIXY 2015-04-02 16:03:56
是的,已经在工作了,谢谢 – 2015-04-02 16:11:35