gpt4 book ai didi

c++ - C++一次读取一个文件,无法输出内容

转载 作者:行者123 更新时间:2023-11-30 02:53:52 25 4
gpt4 key购买 nike

我写了一个非常简单的程序来读取一个 block 中的文本文件的内容并将其保存到缓冲区中然后显示该缓冲区的内容以及缓冲区的大小,尽管我在 Windows 7 中编译了确切的代码它只是工作正常但是每当我在我的 mac 上编译它时根本没有缓冲区输出,缓冲区大小返回 -1,我在编译期间没有收到任何错误

我的文件.txt内容

Hello World !!!

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)

检查您的文件是否已正确打开。

关于c++ - C++一次读取一个文件,无法输出内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17579294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com