ch=cin.get()和cin.get(ch)
时间: 2024-02-09 20:31:41 浏览: 127
`ch=cin.get()` 和 `cin.get(ch)` 都是从标准输入流 `cin` 中获取一个字符的方法,不同之处在于:
- `ch=cin.get()` 会从输入流中读取下一个字符,并将其赋值给变量 `ch`,同时返回该字符的 ASCII 码值。如果输入流中没有字符可读,则返回 EOF。
- `cin.get(ch)` 会从输入流中读取下一个字符,并将其赋值给变量 `ch`,同时返回输入流对象 `cin`。如果输入流中没有字符可读,则将 `ch` 赋值为 EOF。
因此,两者最主要的区别在于返回值类型不同。`cin.get()` 返回字符的 ASCII 码值,而 `cin.get(ch)` 返回输入流对象 `cin`,因此在使用时需要根据实际需要选择使用哪种方法。
相关问题
c++ 从键盘输入一行字符,若为小写字母,则转化为大写字母;若为大写字母,则转化为小写字母;否则转化为ASCII表中的下一个字符。(提示:输入一行字符(ch=cin.get())!='\n')
在C++中,你可以使用`<cctype>`库中的成员函数来处理字符的大小写转换和ASCII编码。下面是一个简单的程序,它会读取用户的一行输入,并根据规则进行相应的转换:
```cpp
#include <iostream>
#include <cctype>
int main() {
std::string input;
std::cout << "Please enter a line of characters: ";
char ch;
while ((ch = std::cin.get()) != '\n') { // 循环直到遇到换行符
if (islower(ch)) { // 判断字符是否为小写字母
ch = toupper(ch); // 转换为大写
} else if (isupper(ch)) { // 若为大写字母
ch = tolower(ch); // 转换为小写
} else { // 对于非字母字符,转为ASCII码后的下一个字符
ch = static_cast<char>(static_cast<int>(ch) + 1);
}
input += ch; // 将转换后的字符添加到输入字符串中
}
std::cout << "Converted string: " << input << std::endl;
return 0;
}
```
这个程序会持续读取用户输入,直到用户按下回车键输入换行符为止。对于非字母字符,它将其ASCII码增加1,模拟“下一个字符”的效果。
cin.get(ch);while(ch!=‘.’)为什么能这样,cin.get(ch)不是只能读取一个字符吗,为什么能输入一大行
这是因为cin.get(ch)函数会读取输入缓冲区中的一个字符,而输入缓冲区中的字符是由用户输入的,直到用户输入一个换行符或者一个点号才会停止。因此,当用户输入一行字符时,cin.get(ch)函数会逐个读取每个字符,直到读取到换行符或者点号为止。这样就可以实现输入一大行字符的功能。
阅读全文