我正在尝试读取一行字符,但只输出第二个和第四个字符。我无法忽略第一个角色。我必须使用get,peek和ignore函数。这是我的代码!
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
char char2, char4;
cout << "Enter an arbitary line. "<<endl;
cin.get(char2);
cout << char2;
cin.get(char4);
cout << char4;
cin.ignore(1, '\n');
cin.peek();
cin.get(char2);
cout << char2 << endl;
return 0;
}
答案 0 :(得分:1)
模式是继续读取输入流并将读取表达式放在while循环中,如下面的代码所示,这样循环自动退出而无需显式检查
#include <iostream>
using namespace std;
int main() {
auto ch = char{};
auto counter = 0;
while (cin.get(ch)) {
counter++;
if (ch == '\n') {
counter = 0;
continue;
} else if (counter == 2 || counter == 4) {
cout << ch;
}
}
return 0;
}
答案 1 :(得分:0)
我这样做的方法是使用字符数组...
#include <iostream>
using namespace std;
int main(){
char characterArray[4];
cout << "please enter four characters: ";
cin >> characterArray;
cout << characterArray[1] << " " << characterArray[3];
return 0;
}
答案 2 :(得分:0)
使用#include <iostream>
#include <string>
int main() {
std::string line;
if (std::getline(std::cin, line)) {
int n = line.size();
if (n >= 2) {
std::cout << line[1] << "\n";
}
if (n >= 4) {
std::cout << line[3] << "\n";
}
}
}
读取一行,如果可能,打印第二个和第四个字符。
$(this)