在c++里,使用cin输入一个矩阵的行数和列数,再输入矩阵内容。则怎样用语句检测输入的是否完整?

来源:百度知道 编辑:UC知道 时间:2024/05/19 01:43:08
例如:
2 3
4 5 6
7 8 9
先输入“2 3”,意为这将是一个2行3列的矩阵,再输入矩阵本身,即数字4到9,但是要保证输入的格式必须为2行3列。假如输入了2行2列或者1行3列都是不行的,需要用代码检查出来这种错误。不知该如何实现,望赐教。

以下代码在vc6.0上编译通过,且使用cputin代替你的cin:

#include<iostream>
#include<conio.h>
using namespace std;
void cgetin(int row,int line,char*sum);
void cputout(int row,int line,char *sum);//把用户的矩阵输出
int main(){
int row,line;
char *sum;
row=line=0;
cout<<"请以(x,y)的形式输入矩阵的行和列,并以回车结束!\n(x,y)=";
scanf("%d,%d",&row,&line);//矩阵为row行line列。
sum=new char[sizeof(row*line)];

cgetin(row,line,sum); //调用cgetin()进行矩阵输入。
cputout(row,line,sum); //把用户输入的矩阵进行输出。
getchar();
delete []sum;//加上这条语句在vc6.0上运行可能会出错。
return 0;}
void cgetin(int row,int line,char*sum){
printf("请输入%d行和%d列的矩阵的数据:\n",row,line);
int row_c,line_c,sum_c=0;
for(line_c=0;line_c<line;line_c++){
for(row_c=0;row_c<row;row_c++){
sum[sum_c]=getche();
sum_c++;
put