所以,我试图使用getline读取用户输入,我遇到的错误是,如果用户输入“Hi there”,当它读取它时,它认为最后有一个换行符。因此,当我尝试打印它时,它会打印“Hi there”,然后自动转到下一行,我怎么能不让它进入下一行。
这是我的代码 -
printf(">");
getline(&userinput,&length,stdin);
printf("userinput:%s",userinput);
printf("DONE");
如果用户输入 - “它完成了吗?”
目前正在打印 -
"Is it done?"
"DONE"
但我想要打印 - "Is it done?DONE"
非常感谢任何帮助
答案 0 :(得分:0)
一种方法是从userinput字符串中消除换行符:
printf(">");
getline(&userinput,&length,stdin);
char *cp=strchr(userinput, '\n'); /* Find the line-break character (if it exists) */
if(cp)
*cp = '\0'; /* Convert the line-break character to a string termination character. */
printf("userinput:%s",userinput);
printf("DONE");
答案 1 :(得分:0)
getline
包含换行符。您可以通过以下方式修剪:
userinput[strlen(userinput)-1] = '\0';
然后,您可以使用以下方式打印它们:
printf("userinput: %s DONE\n", userinput);