char ch; ch=getchar(); // getchar用不了我*** // cin>>ch; while(ch<'0'||ch>'9') ch=getchar(); a[i][j]=ch-'0';为什么getchar用不了
时间: 2024-04-17 11:25:53 浏览: 8
根据您提供的代码,您遇到了无法使用`get()`函数的问题。这可能是因在使用`getchar()`函数之前,标准输入缓冲区中还有其他字符残留,导致`getchar()`读取到了不正确的字符。
为了解决这个问题,您可以在调用`getchar()`之前使用`getchar()`来清空输入缓冲区中的残留字符,直到读取到一个有效的字符为止。修改后的代码如下所示:
```c
char ch;
while ((ch = getchar()) != EOF && ch != '\n'); // 清空输入缓冲区
ch = getchar(); // 读取有效字符
while (ch < '0' || ch > '9')
ch = getchar();
a[i][j] = ch - '0';
```
这样,您可以确保在调用`getchar()`函数之前输入缓冲区中没有残留的无效字符。
请注意,`getchar()`函数返回的是`int`类型,而不是`char`类型。这是为了能够表示特殊字符`EOF`(文件结束符)。因此,您可以将其与字符常量`EOF`进行比较,以检查是否达到文件末尾。
如果您还有其他问题,请随时提问。我会尽力帮助您解决问题。