我的代码的问题是它永远不会进入if。 换句话说,它从不读取'\ n'字符。 “ \ n”存在于我要读取的文件中,这一点很重要 读取它以正确保存矩阵。
#include <iostream>
#include <cstring>
#include <fstream>
#include <iomanip>
using namespace std;
int main(int argc, char **argv){
int N, M;
int n, m;
int i, j;
char a;
ifstream myfile;
string txt;
char mat[1000][1000];
txt = argv[1];
myfile.open(txt);
n = 0;
m = 0;
while(myfile >> a){
if(a == '\n'){
n++;
m = 0;
continue;
}
mat[n][m] = a;
m++;
}
myfile.close();
cout << n << " " << m;
for(i=0; i<=n; i++){
cout << endl;
for(j=0; j<m; j++){
cout << mat[i][j] << " ";
}
}
}
答案 0 :(得分:-1)
有两个等效的输入字符功能-getc ()
和fgetc ()
。支持两个相同的功能
getc()
函数用于从打开的流中读取字符,以使用fopen()
进行读取。 getc()
原型如下:
int getc(FILE * fp);
其中fp是指向fopen()
返回的文件类型FILE *的指针。传统上,getc()
返回一个整数,但高字节设置为0。
到达文件末尾时,getc()
函数将返回EOF。要完全读取文本文件,请使用以下代码:
ch = getc(fp);
while (ch! = EOF)
{
enter code here`ch = getc (fp);
}
或者您可以尝试
if(a == '\')