这里展示如何从终端获取一整行字符串的代码例子,已在linux下测试通过,请仔细阅读代码:
/**
* 从标准输入读取一行数据的测试
* @param char* prompt 提示信息
* @param char* line 终端读取的字符串保存在此
* @param int count 可读取的字符串长度,
*/
char* get_line_console(char* prompt, char* line, int count){
int i;
// getchar(); // linux下需要调用getchar()方法阻塞后,才能在控制台输入(这块需要再仔细验证一下)
printf("%s\n", prompt);
if(fgets(line, count, stdin) != NULL && *line != '\n'){
// fgets函数最大读取 count - 1个字符,或者在遇到第一个换行符为止。
// fgets会添加\0到末尾。
// fgets遇到换行符,会把它存储到字符串中
//
i = 0;
while(*line != '\n' && *line != '\0'){
// 当line中的字符不是换行也不是\0时,进行循环计数
//printf(">>> 输入的字符: %d, %c, (%p)\n", i, *line, line);
i++;
line++;
}
// 跳循环时,lin