如何从文件中读取“ \ n”字符

时间:2019-04-14 14:08:01

标签: c++

我的代码的问题是它永远不会进入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] << " ";
    }
  }
}

1 个答案:

答案 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 == '\')