gets在调试的时候无法输入是什么情况?

我是vc++6.0
gets()用于输入字符串的时候调试时无法输入任何字符

望采纳
可能是因为 gets 函数有一些安全问题,并且在某些编译器中已经被弃用。可以使用其他函数来输入字符串,例如:

  • fgets 函数
  • cin.getline 函数
  • scanf 函数

示例代码:

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    char str[100];
    cout << "请输入一个字符串:" << endl;
    fgets(str, 100, stdin);  // 输入字符串
    cout << "你输入的字符串是:" << str << endl;
    return 0;
}

gets()函数
1.描述
C 库函数 char *gets(char *str) 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。

gets(str) 约等于 scanf("%s",&str) 会把读到的字符串写入数组,但又不同。
2.区别
scanf("%s",&str) :读到空格便停止。
gets(str) :一直读到敲回车(不管中间是否有空格)。