C++ 保持输出和输入的交替?
我对编码非常陌生,一直在codeforces.com上练习一些简单的问题。我正在做,但它似乎要求输入(同时)产生输出(同时)。我一次只能得到一个输出 以下是该问题的基本说明: 输入 第一行包含一个整数n(1) ≤ N ≤ 100). 以下n行中的每一行都包含一个单词。所有单词都由小写拉丁字母组成,长度为1到100个字符 输出 打印n行。第i行应包含从输入数据中替换第i个字的结果 例子 输入 四, 话 本地化 国际化 肺炎显微镜下矽肺孢子虫病 输出 话 l10n i18n P43 这是我的密码:C++ 保持输出和输入的交替?,c++,C++,我对编码非常陌生,一直在codeforces.com上练习一些简单的问题。我正在做,但它似乎要求输入(同时)产生输出(同时)。我一次只能得到一个输出 以下是该问题的基本说明: 输入 第一行包含一个整数n(1) ≤ N ≤ 100). 以下n行中的每一行都包含一个单词。所有单词都由小写拉丁字母组成,长度为1到100个字符 输出 打印n行。第i行应包含从输入数据中替换第i个字的结果 例子 输入 四, 话 本地化 国际化 肺炎显微镜下矽肺孢子虫病 输出 话 l10n i18n P43 这是我的密码:
#include <iostream>
#include <string>
using namespace std;
void wordToNumbers(string word){
int midLetters = word.length();
char firstLetter = word.front();
char lastLetter = word.back();
cout <<firstLetter <<(midLetters-2) <<lastLetter <<endl;
}
int main(){
string wordInput;
string firstNum;
getline(cin,firstNum);
int i = stoi(firstNum);
for(i>=1; i--;){
getline(cin,wordInput);
if (wordInput.length() > 10){
wordToNumbers(wordInput);
} else {
cout <<wordInput <<endl;
}
}
return 0;
}
#包括
#包括
使用名称空间std;
无效字编号(字符串字){
int midLetters=单词长度();
char firstLetter=word.front();
char lastLetter=word.back();
Cuth我也是C++初学者,我的想法是先把每一行保存在一个缓冲区中,然后把所有的东西写入STD::CU.
我使用std::vector作为缓冲区,因为它简单易懂,在许多情况下非常有用。基本上,它是一个更好的数组。您可以阅读更多关于std::vector的内容
#包括
#包括
//用于std::vector容器
#包括
使用名称空间std;
无效字编号(字符串字){
int midLetters=单词长度();
char firstLetter=word.front();
char lastLetter=word.back();
cout逐行读取和打印输出非常好
完全接受您的解决方案:请您在问题正文中总结一下问题,好吗?链接往往会断开。我想还是可以逐个打印到std::out?
#include <iostream>
#include <string>
//for use of std::vector container
#include <vector>
using namespace std;
void wordToNumbers(string word){
int midLetters = word.length();
char firstLetter = word.front();
char lastLetter = word.back();
cout <<firstLetter <<(midLetters-2) <<lastLetter <<endl;
}
int main(){
string wordInput;
string firstNum;
//container for buffering all our strings
vector<string> bufferStrings;
getline(cin,firstNum);
int i = stoi(firstNum);
//read line by line and save every line in our buffer-container
for(i>=1; i--;){
getline(cin,wordInput);
//append the new string to our buffer
bufferStrings.push_back(wordInput);
}
//now iterate through the buffer and write everything to cout
for(int index = 0; index < bufferStrings.size(); ++index) {
if (bufferStrings[index].length() > 10){
wordToNumbers(bufferStrings[index]);
} else {
cout <<bufferStrings[index] <<endl;
}
}
return 0;
}