不带变量的类中的函数。但读取/打印数组
Function in a class that doesn't take a variable. but reads/prints an array
所以我有一个类:
class myClass {
public:
void readFile();
private:
int sPerDay[10];
};
我想要这个函数来读取/打印文本文件的数组(一堆10行长的数字)
void myClass::readFile()
{
ifstream read("numbers.txt");
for(int i=0;i<10;i++)
read>>sPerDay[i];
for (int i = 0;i<10;i++) {
cout << sPerDay[i];
}
}
输出是一堆随机数。我哪里错了?
如果您不确定文件是否存在,或者它是否与可执行文件在同一目录中,请修改代码以检查文件是否打开,例如:
void readFile() {
ifstream read("numbersd.txt");
if(!read) { cerr << "File didn't open..Does it exist?" << endl; return; }
...
然后,如果它没有打开,以下是可能发生的一些事情:
- 文件不存在
- 文件不在您认为的路径中
- 您没有访问该文件的权限
问题在于文件,因为代码运行良好,假设文件numbers.txt存在(并且它与您的可执行文件在同一目录中),我使用了这个文件,例如:
1
2
3
4
5
6
7
8
9
10
结果是:
C02QT2UBFVH6-lm:~ gsamaras$ g++ main.cpp
C02QT2UBFVH6-lm:~ gsamaras$ ./a.out
1 2 3 4 5 6 7 8 9 10
这是我从你那里使用的代码:
#include <iostream>
#include <fstream>
using namespace std;
class myClass {
public:
void readFile() {
ifstream read("numbers.txt");
for(int i=0;i<10;i++)
read>>sPerDay[i];
for (int i = 0;i<10;i++) {
cout << sPerDay[i] << " ";
}
cout << "n";
}
private:
int sPerDay[10];
};
int main() {
myClass obj;
obj.readFile();
return 0;
}
您可能做错了很多事情。
1) 文件numbers.txt
不存在,并且此代码无法检查文件是否已成功打开。
2) 文件numbers.txt
存在,但不包含由空格分隔的十个整数,并且此代码无法检查operator>>
是否成功。
3) 此代码还将10个数字打印到std::cout
,不带任何分隔字符。在最好的情况下,您将得到的输出看起来是第一行的大数字。
所以,这里至少有两三件事是错误的。你需要修复所有这些:
A) 请验证文件是否已成功打开。
B) 在每次调用operator>>
之后,检查文件流是否为good()
。
相关文章:
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- TCP 服务器的异步读取使用 boost::asio 打印客户端套接字发送的数据
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 我编写了以下代码来读取C++矩阵,然后打印其行和列.我收到此错误
- 读取一组用户输入,按升序排序,然后打印结果
- 如何将文件逐行读取到矢量中,然后打印矢量
- 硬编码字符串与强制转换为 PUCHAR 并打印到控制台时从控制台读取的字符串的结果不同
- 从C++文件中读取和打印 UTF-8 符号
- 尝试以随机字符(长读取)打印字符串返回结果
- 我在编写从文本文件中读取数据并按升序打印的代码时遇到问题
- 尝试读取数据文件,存储在数组中并打印所有元素,但它不起作用
- 如何以CV_16UC1的方式读取JPG图像并在屏幕上打印?
- Newline更改了C 中打印从文件读取的字符串的方式
- 如何在我从文件中读取的结构中打印数据
- 从 HDFS 读取和打印文本文件
- C++ 从文件读取到类对象数组以打印 25 行
- 如何读取二进制文件并在屏幕上打印 3?
- 动态分配的数组C 读取句子并打印单词
- C++ 将文件中的数字读取到数组中,然后将其打印到其他数组中
- c++的新功能,scanf不能正确读取/打印输入