我不想使用getline 函数
时间: 2024-08-16 11:06:45 浏览: 40
基于getline()函数的深入理解
如果你不想使用`getline()`函数来读取整个行,因为你的需求可能是逐个字符读取并处理,你可以直接使用`std::cin.get()`获取字符,直到遇到换行符为止。这是一个简单的例子:
```cpp
#include <iostream>
#include <cctype>
std::string convertCase(char inputChar) {
if (isupper(inputChar)) {
return tolower(inputChar);
} else if (islower(inputChar)) {
return toupper(inputChar);
} else {
return inputChar;
}
}
std::string convertCaseIteratively(std::string str) {
std::string output;
char ch;
while ((ch = std::cin.get()) != '\n') { // 直到遇到换行符
output += convertCase(ch);
}
output.push_back('\n'); // 添加回换行符,因为我们之前忽略了它
return output;
}
int main() {
std::string str;
std::cout << "请输入一个字符串: ";
while (std::cin >> str) { // 逐个字符读取
str = convertCaseIteratively(str);
}
std::cout << "转换后的字符串: " << str << std::endl;
return 0;
}
```
这个版本的程序会逐个字符从用户那里读取,处理后再追加到结果字符串中,直到遇到换行符。
阅读全文