在一个块中读取C++文件,无法输出内容
Reading a file in C++ in one block, can't output the contents
我写了一个非常简单的程序,在一个块中读取文本文件的内容,并将其保存到缓冲区中,然后用缓冲区的大小显示该缓冲区的内容,尽管我在Windows 7中编译了确切的代码,但它运行得很好。然而,每当我在mac上编译它时,根本没有缓冲区输出,缓冲区大小返回-1,我在编译期间没有得到任何错误
myfile.txt内容
你好,世界
A B C D E F G H I。。。Z
a b c d e f g h i。。。z
我的代码
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main ()
{
fstream myfile;
myfile.open("myText.txt");
myfile.seekg(0,ios::end);
long int size = myfile.tellg();
myfile.clear();
myfile.seekg(0,ios::beg);
char* buffer = new (nothrow) char[size];
myfile.read(buffer,size);
myfile.close();
for (int i = 1; i < size;i++ )
if ((buffer[i]>= 65 && buffer[i] <=90) || (buffer[i] >= 97 && buffer[i] <= 122) || buffer[i] == ' ' || buffer[i]== 'n')
cout << buffer[i];
cout << size;
delete [] buffer;
getchar();
return 0;
我通过检查了文件读取操作
if(myfile.good() == false)
cout << "Error openning the file n";
if(myfile.bad() == true)
cout << "Read/writing error on i/o operation n";
if (myfile.fail() == true)
cout <<"Logical error on i/o operation n";
我的输出:
打开文件时出错
i/o操作的逻辑错误
-1
我的猜测是你没有打开这个文件:可能它在Windows中工作是因为文件名不区分大小写,而在Mac上是这样。(无论如何,你说你的文件名为myfile.txt,在你的程序中你打开的是myText.txt)
检查您的文件是否已正确打开。
您应该在myfile.open(…)之后测试myfile.good()
很可能是因为它查找错误的路径而没有正确打开文件。上个月我在做一个项目时也遇到了同样的问题。
文件位于正确的位置,但Xcode查找的目录错误。您需要通过更改方案来指定目录。进入"产品"->"方案"->"编辑方案",在选项中可以选择您的工作目录,您应该将其更改为项目文件夹。然后它应该能正确读取文件。
相关文章:
- 如何在 的开头<x>和结尾<y>之间更改带有文件输出的字符串的值
- C++对象数组的文件输出
- bcdedit 文件输出不起作用,但其他命令可以
- 如何从文本文件输出数据?(学生成绩单计划)
- 使用 C++文件 I/O 输出 pdf 文件
- C 文件输出垃圾
- 从堆栈中读取字符后,如何修复不正确的文件输出
- C++:具有随机名称的文件输出
- 在命令提示符下看到换行符,但在文件输出中可以看到 相同的字符串
- 生成文件不会生成预期的文件输出
- C++11 fgetc 在"r+b"模式下使用时向我的文件输出 0
- 使用函数从文件输出
- GCC.obj文件输出不具有确定性(.debug_info,PROGPITS部分)
- C cstdiofile :: Writestring给出了不正确的文件输出
- C 输出:STD :: COUT和文件输出没有相同的内容
- GCC和MSVC之间的文件输出不一致
- C++文件输出奇怪的数字,并且部分代码没有运行
- 如何将特定字符从TXT文件输出到特定点
- C 调用从TXT文件输出信息的函数
- 将交易从文本文件输出到屏幕