如何在cpp中读取多行
How to read multiple lines in cpp?
我试图一次读取两行(例如:这是一行),但由于某种原因,我无法同时读取这两行。:(请帮忙…
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] = ' ';
i = 0;
while((c = getchar()) != 'n') {
two[i++] = c;
}
two[i] = ' ';
cout<<one<<endl;
cout<<two<<endl;
}
}
输入:这是第一行这是第二行输出:这是第一行(每次迭代)。。请帮忙..:|
您可以使用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;
}
我与输入无关,但在读取每一行之前,您需要重置i
。从外观上看,你只是在第一行中间的某个地方追加。以下是读取一行的情况(显然,如果您读取的行数超过该行数,则需要执行相同的操作,即调用执行相同逻辑的函数):
{
size_t i(0);
for (int tc; i < sizeof(one) && (tc = getchar()) != EOF && tc != 'n'; ++i) {
one[i] = tc;
}
one[i] = 0;
}
我还添加了两个必要的条件来增强这个条件,一个是避免缓冲区溢出,另一个是处理流到达其末尾的情况。当然,我不会这样做,而是会使用
std::string one;
if (std::getline(std::cin, one) && std::getline(std::cin, two)) {
std::cout << "one='" << one << "' two='" << two << "'n";
}
相关文章:
- C++ gmock - 我们如何在单元测试 cpp 文件中读取/获取 cpp 文件函数的参数值
- C++/CPP 读取添加的十六进制地址
- CPP 在读取结构数据时无限循环错误?
- 如何将变量从 CMakeLists.txt 读取到 cpp 文件
- AWS S3 CPP SDK读取字节多于指定的范围
- 使用stat和read()读取cpp文件时出错
- 使用tserial.cpp驱动程序读取COM端口时的延迟
- 如何在cpp中读取多行
- 如何使用ESE CPP api从ESE数据库文件中读取字符串值
- Rational软件架构师如何将.h和.cpp文件读取到新项目中
- 允许写入/读取的联机CPP编译器
- 从.cpp文件(C++)中的头文件读取枚举
- 如何使用cpp从ESE数据库中读取记录
- CPP快速读取双倍的小二进制文件
- 是否可以像txt文件一样读取cpp文件
- Eclipse 在使用 freopen 或 fopen CPP 时无法读取文件
- 如何读取.cpp文件中的下一个字符
- 从.cpp文件读取时出现问题
- 使用CPP读取CSV文件,使用CMake文件编译代码
- 使用python解析或读取CPP文件,并通过忽略CPP文件注释来添加数据