c++中如何输入多行数据!!!
发布网友
发布时间:2022-05-02 22:40
我来回答
共5个回答
热心网友
时间:2022-06-27 23:39
#include<iostream.h>
#define N 5//通过改变N的值控制输入的行数,如果是5的话,就不要输入6个字符串,否则会越界
void main()
{ char *s[N];
int n;
cin>>n;
for(int i=0;i<N;i++)
{
s[i]=new char [n];//每个字符串的长度必须小于n
cin>>s[i];}
for(i=0;i<N;i++)
cout<<s[i]<<endl;
for(i=N-1;i>=0;i--)
delete s[i];
}
勉强能实现你的要求,还有一个错误,不是很清楚,欢迎交流...
呵呵,修改后的程序能正常运行....
下面的代码也可以解决问题:
#include<iostream.h>
void main()
{
int i,n;
cin>>n;//输入的字符串数
char **p;
p=new char *[n];
for(i=0;i<n;i++)
{p[i]=new char [20];//每个字符串的最大长度,可根据需要改变
cin>>p[i];}
for(i=0;i<n;i++)
cout<<p[i]<<endl;
for(i=n-1;i>=0;i--)
delete p[i];
}
以上程序在vc6.0中均运行通过...
热心网友
时间:2022-06-27 23:39
//用数组保存。
//用for循环计数。
#include <iostream>
using namespace std;
char s[1000][100];
int main()
{
int n,i;
cout<<"n = ?"<<endl;
while( cin>>n )
{
gets(s[0]);
for(i=0;i<n;i++)
{
gets(s[i]);
}
cout<<"输出:"<<endl;
for(i=0;i<n;i++)
{
puts(s[i]);
}
cout<<"\n\n\nn = ?"<<endl;
}
return 0;
}
热心网友
时间:2022-06-27 23:39
循环 设置个结束字符。因为是每行一个字符串所以不能以回车作为结束符了 楼上的代码n成已知的了。
热心网友
时间:2022-06-27 23:40
写循环。。每次输如1个字符串。
热心网友
时间:2022-06-27 23:41
vector<char> Vec;
copy(istream_iterator<char>(cin),istream_iterator<char>(),back_insert_iterator<vector<char> >(Vec));
copy(Vec.begin(),Vec.end(),ostream_iterator<char>(cout,"\n"));