gpt4 book ai didi

c - 当用户在控制台中按 Enter 时,会向程序发送什么?

转载 作者:行者123 更新时间:2023-11-30 18:42:19 25 4
gpt4 key购买 nike

编辑:DanielFischer 指出了下面代码的问题,以防有人好奇。

如果用户输入格式化字符串并按 Enter 键,到底会发送什么内容到读取它的程序?

Enter name> John Smith

这是否仅发送以空结尾的字符串,或者是否有一个表示它们也按回车键的表示字符?

编辑:我认为迈克所说的是真的。但是为什么这段代码不起作用呢?

printf( "Enter command> " );
memset( buf, 0, BUFSIZ );
do{
temp = getchar();
if{ temp != '\n' ) strcat( buf, &temp );
}while( temp != '\n' );
strcat( buf, "\0" );

最佳答案

发送到终端的是10个字符:

[J][o][h][n][ ][S][m][i][t][h][\n]

程序如何处理它取决于用于读取输入的函数。最后一个字符 ('\n') 表示我们点击“enter”。

以 null 结尾的字符串是程序内部的一个概念(即字符串函数需要它才能正常工作),在示例中您不会看到来自 stdin 的 NULL 终止符。

这就是为什么您需要了解从用户接受数据的函数如何工作,如果它需要换行符,您可能需要将其删除。如果它没有自动附加空终止符,您可能应该添加一个,等等。

关于c - 当用户在控制台中按 Enter 时,会向程序发送什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17222255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com