标签: fstream

C++ fstream函数读取一行而不提取?

在C++中,fstream库(或任何库)中是否有一个函数允许我在不提取的情况下将行读取到'\n'的分隔符?

我知道peek()函数允许程序"偷看"它读取的下一个字符而不提取,但是我需要一个peek()之类的函数来完成这个但是整行.

c++ fstream extraction peek

10
推荐指数
1
解决办法
6508
查看次数

如何在C++中阅读不断增长的文本文件?

我试图从正在增长的文件(类似于什么tail -F)中读取,但我的代码必定存在一些问题:

string   log, logFile("test.log");
size_t   p = 0;

while(true)
{
    ifstream ifs(logFile.c_str());

    ifs.seekg(p);  //*1

    while(ifs.eof() == false)
    {
        getline(ifs, log);

        cout << log << endl;

        p = ifs.tellg();  //*2
    }

    nanosleep(&pause, NULL);
}
Run Code Online (Sandbox Code Playgroud)

如果没有//*1和//*2的行,日志文件会被正确读取到最后,但是如果添加新行,则不会发生任何事情.

使用seekg和tellg我试图存储文件的当前结束位置,这样当我重新打开它时,我可以去那里并阅读已添加的内容.

我想知道我的代码有什么问题,如果真的有必要为此目的关闭并重新打开同一个文件.

谢谢.

c++ logging fstream stl seekg

10
推荐指数
2
解决办法
7083
查看次数

如何在使用fstream打开文件时截断文件

我知道可以截断一个文件

std::fstream fs(mypath, std::fstream::out | std::fstream::trunc);
Run Code Online (Sandbox Code Playgroud)

但我需要读取文件,截断它,然后用相同的文件句柄写所有内容(所以整个操作是原子的).任何人?

c++ fstream std

10
推荐指数
2
解决办法
2万
查看次数

c ++ - fstream和ofstream

有什么区别:

fstream texfile;
textfile.open("Test.txt");
Run Code Online (Sandbox Code Playgroud)

ofstream textfile;
textfile.open("Test.txt");
Run Code Online (Sandbox Code Playgroud)

他们的功能是一样的吗?

c++ fstream ofstream

10
推荐指数
1
解决办法
2万
查看次数

在'if'条件中定义fstream

答案中有以下代码:

if (std::ifstream input("input_file.txt"))
  ;
Run Code Online (Sandbox Code Playgroud)

这似乎很方便,将'input'变量的范围限制在确认有效的位置,但VS2015和g ++似乎都没有编译它.它是某些编译器特定的东西还是需要一些额外的标志?

在VS2015中,IDE突出显示"std :: ifstream"和"input_file.txt"以及最后一个括号."std :: ifstream"标记为"错误:此处不允许使用函数类型".

VS2015 C++编译器给出以下错误:

  • C4430缺少类型说明符 - 假设为int.注意:C++不支持default-int
  • C2059语法错误:'('

c++ fstream if-statement ifstream ofstream

10
推荐指数
2
解决办法
1147
查看次数

为什么fstream不是从c ++中的ifstream和ofstream继承而来的?

ifstream并且ofstream是用于文件中的输入和输出,并且fstream可以执行它们的任务但不能继承任何一个,ifstream并且ofstream,这个代码是重复还是别的?

fstream的层次结构

c++ fstream iostream ofstream

10
推荐指数
1
解决办法
384
查看次数

Visual Studio在执行文件管理操作时在哪里搜索txt文件?

我知道这是一个noob问题,但是我之前和之后只想访问.txt文件,我曾经使用过Python.所有你需要做的就是确保txt文件在同一个目录中.我在下面有以下C++代码,但它没有找到我在桌面上保存的Numbers.txt文件.我在文件中的所有内容都是一行double类型的数字.我想要做的就是找到文件中所有数字的平均值.程序运行正常,但它不能正确打印输出.通过打印输出[0]检查打印到输出的内容后,我发现该文件没有将其内容复制到数组中.有人可以为我清除这个小问题,或者至少指出我正确的方向指向一个好的教程?

int main() {
    cout << "Getting File Information..." << endl;
    ifstream file;
    char output[100];
    //int x;

    file.open("Numbers.txt", ios::in);    // open file

    cout << "Opened File Successfully ****************" << endl;
    file >> output;              // empty file contents into output
    cout << output;              // print out contents of file
    cout << "Should have printed out results by now" << endl;
    //file >> x;

    file.close();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ fstream file-management ifstream visual-studio

9
推荐指数
2
解决办法
5万
查看次数

fstream输入和输出不存在的文件

是否可以在ios :: in和ios :: out不存在的文件上打开fstream而不会出现错误?

c++ fstream

9
推荐指数
3
解决办法
1万
查看次数

为什么'ifstream'和'ofstream'被添加到"std",而'fstream'可以用于这两个目的?

利用 std::fstream一个可以声明两种类型的对象ifstreamofstream.唯一不同的是,随着fstream我们需要提供in,out,app作为一个参数,它可能并不总是需要另外两个.

有什么特别的东西ifstream,ofstream无法实现fstream或只是编码方便吗?

c++ fstream ifstream ofstream

9
推荐指数
2
解决办法
5496
查看次数

检查fstream是文件还是目录

我正在使用C++ fstream来读取配置文件.

#include <fstream>
std::ifstream my_file(my_filename);
Run Code Online (Sandbox Code Playgroud)

现在,如果我传递一个目录的路径,它会默默地忽略它.my_file.good()即使my_filename是目录,Eg 也会返回true .由于这是我的程序的意外输入,我喜欢检查它,并抛出异常.

如何检查刚打开的fstream是否是常规文件,目录或流?

我似乎无法找到一种方法:

  • 从给定的ifstream获取文件描述符.
  • 使用其他一些机制在ifstream中查找此信息.

一些论坛讨论中,有人认为这两者都不可能,因为这是依赖于操作系统的,因此永远不会成为fstream C++标准的一部分.

我能想到的唯一选择是重写我的代码以完全摆脱ifstream并使用文件描述符(*fp)的C方法,以及fstat():

#include <stdio.h>
#include <sys/stat.h>
FILE *fp = fopen(my_filename.c_str(), "r");
// skip code to check if fp is not NULL, and if fstat() returns != -1
struct stat fileInfo;
fstat(fileno(fp), &fileInfo);
if (!S_ISREG(fileInfo.st_mode)) {
    fclose(fp);
    throw std::invalid_argument(std::string("Not a regular file ") + my_filename);
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢fstream.因此,我的问题.

c++ fstream ifstream c++11 fstat

9
推荐指数
1
解决办法
6091
查看次数