C++ 如何读取cpp中的多行?

C++ 如何读取cpp中的多行?,c++,input,C++,Input,我试图一次读两行(例如:这是一行),但由于某些原因,我不能同时读这两行 int main() { freopen("input.txt", "r", stdin); char c, one[100], two[100]; int i = 0, t; cin>>t; while(t--) { while((c = getchar()) != '\n') { one[i++] = c; } one[i] = '\0'; i = 0;

我试图一次读两行(例如:这是一行),但由于某些原因,我不能同时读这两行

int main() {
freopen("input.txt", "r", stdin);
char c, one[100], two[100];
int i = 0, t;

cin>>t;
while(t--) {

    while((c = getchar()) != '\n') {
        one[i++] = c;
    }
    one[i] = '\0';

    i = 0;
    while((c = getchar()) != '\n') {
        two[i++] = c;
    }
    two[i] = '\0';
    cout<<one<<endl;
    cout<<two<<endl;
}
intmain(){
freopen(“input.txt”,“r”,stdin);
字符c,一[100],二[100];
int i=0,t;
cin>>t;
而(t--){
而((c=getchar())!='\n'){
一个[i++]=c;
}
一个[i]='\0';
i=0;
而((c=getchar())!='\n'){
两个[i++]=c;
}
两个[i]='\0';

CUT

与输入无关,但在读取每行之前,需要重置<代码> I/COD>。从外观上看,您只是在第一行的中间添加了一部分。(显然,如果您读取的行数超过该行数,则需要执行相同的操作,即调用执行相同逻辑的函数):

{
尺寸i(0);
对于(int tc;i
我还增加了两个附加的必要条件,一个用于避免缓冲区溢出,另一个用于处理已到达其末端的流

std::string one;
if (std::getline(std::cin, one) && std::getline(std::cin, two)) {
    std::cout << "one='" << one << "' two='" << two << "'\n";
}
std::字符串一;
if(std::getline(std::cin,一)和&std::getline(std::cin,二)){

std::cout您可以使用std::getline:

int main(){
 char one[100], two[100];
 std::ifstream ifs;
 ifs.open("input.txt", std::ifstream::in);
 ifs.getline(one, 100);
 ifs.getline(two, 100);
 std::cout << one << std::endl;
 std::cout << two << std::endl;
 return 0;
}
intmain(){
字符一[100],字符二[100];
std::ifstream-ifs;
打开(“input.txt”,std::ifstream::in);
ifs.getline(一个,100);
ifs.getline(两个,100);

STD::代码见> > STD::IfStase和 STD::GETLION>代码>为什么在C++中使用<代码> GETCHAR < /C> >使用@ EdHead我想使用CIN,但CIN不能读取由空格分隔的行……)谢谢您的回复…我尝试了您的代码,但我仍然得到了一条空白行…(…您介意告诉我如何使用getline处理它吗..再次感谢...)@user2220775:查看它,我注意到代码缺少正确的零终止。我已经更新了答案。在处理数据时,我的意思是:对输入做任何需要做的事情。我还更新了该部分以打印两个字符串的内容。库尔:感谢您的努力:)…顺便说一句,你能给我指一些能帮助我正确学习细微差别的东西吗…)谢谢你的回答…你给出的代码在我一次运行时效果很好…但是当我迭代时,我没有得到输出…这是我给出的输入第1行:qwrtyuipasdfgjkzxcvnmheol第2行:dummy!第3行:bfgjklmopqrstuwzhvnicdyea第4行:befgd hbi!第5行:qwrtyuipasdfgjzxcvnmheol第6行:dummy!最后解决了它…我只是一个额外的getc读取t的值后的har():)
int main(){
 char one[100], two[100];
 std::ifstream ifs;
 ifs.open("input.txt", std::ifstream::in);
 ifs.getline(one, 100);
 ifs.getline(two, 100);
 std::cout << one << std::endl;
 std::cout << two << std::endl;
 return 0;
}