Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法在我的代码中从记事本中输入数字_C++_Gcc_File Io_Numbers_Atom Editor - Fatal编程技术网

C++ 无法在我的代码中从记事本中输入数字

C++ 无法在我的代码中从记事本中输入数字,c++,gcc,file-io,numbers,atom-editor,C++,Gcc,File Io,Numbers,Atom Editor,我的代码是:(使用Atom) 请注意,所有错误都已删除,但输出错误。在问题的末尾提到了输出。 #include<iostream> #include<fstream> using namespace std; int main() { char ch ; int a, arr[2], i=0; ifstream f(“num.txt”); while(!f.eof()) { f>>ch; arr[i]=a; }

我的代码是:(使用Atom) 请注意,所有错误都已删除,但输出错误。在问题的末尾提到了输出。

#include<iostream>
#include<fstream>

using namespace std;

int main()
{
  char ch ;
  int a, arr[2], i=0;
  ifstream f(“num.txt”);
  while(!f.eof())
  {
    f>>ch;
    arr[i]=a;
  }
  f.close();
  for(int i = 0 ; i<3 ; i++)
  {
    cout<<a[i]<<'\n';
  }
  return 0;
}

您正在索引变量a,它是一个int,而不是一个数组。另外,在while循环中,您只访问数组arr的第一个元素(因为i是0),并且您一直在分配a的值,而a的值没有设置在任何地方。您应该在读入ch之后检查f.fail(),或者至少执行以下操作

std::array<int, 2> arr;

for(int i = 0; (std::cin >> ch) && i < arr.size(); ++i) {
    arr[i];
}
std::数组arr;
对于(int i=0;(std::cin>>ch)和&i

如果您事先不知道需要读取多少个数字,则使用
std::vector
,然后
将值向后推。

看起来您使用的是一些非ascii引号。在这里,使用这些代码:<代码> NUM.TXT”< /C> >。你可以将堆栈跟踪放在代码块中,这样它看起来就不那么混乱。“记事本”不是一个适合编写和编辑C++代码的文本编辑器。你需要一个真正的文本编辑器。@SameerYadav我没有拿我的评论开玩笑。如果您用我提供的常规引号替换您的智能引号,它将清除这些错误。@John您似乎有意地回答了评论中的问题?评论旨在询问更多信息或提出改进建议,而不是回答问题。如果你对某个问题有一个答案,那么请将答案作为答案发布。解决编译器报告的最后一个错误通常不是解决错误的有效方法。在本例中,最后一个错误独立于前面的错误,但后面的错误通常是工件,只是因为编译器被前面的错误弄糊涂了才存在。在本例中,这肯定是一个错误。是的,我们一致认为这是一个错误,但您没有抓住要点。假设您正在响应不理解错误消息的人。您如何证明忽略以前的错误是合理的?什么会告诉此人早期的错误可以忽略?文章的第一条评论已经指出使用了非ascii引号。我想这已经很清楚了,所以我只关注目前存在的其他错误。
51
1982955789
859839168
std::array<int, 2> arr;

for(int i = 0; (std::cin >> ch) && i < arr.size(); ++i) {
    arr[i];
}