问题标签 [getline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
487 浏览

c++ - C++:Mac Xcode 3.2.2、g++ 4.2 问题。无法使用流从外部文件中读取数字

可能的重复:
C++:可能的 Xcode (Mac) 问题。无法使用 getline() 从外部文件中读取数字

我是 Mac Xcode (3.2.2) 用户,使用 GCC 4.2 编译器,对 C++ 相当缺乏经验,对编译器完全一无所知。

我需要从外部文件中读取数字并将它们存储在整数向量中。我使用流和 getline() 编写代码。我可以编译代码,它运行没有错误,但没有输出。不过,它适用于朋友(非 Mac 和非 GCC 4.2 编译器)。

我做了一些谷歌搜索,发现了几篇关于 Xcode 3.2.1 中可能的编译器(gcc,Apple)问题的帖子,这可能与我的问题有关(例如:C++ using getline() prints: pointer being free was not assigned in XCode。但是,我有 Xcode 3.2.2。我尝试了建议的修复程序(与将 _GLIBCXX_FULLY_DYNAMIC_STRING 添加到(1)目标设置窗口或(2)作为包含之前的预处理器宏),但我的问题仍然没有解决。

所以我现在不知道我的问题是什么——它是否与人们在 Xcode 3.2.1 中遇到的编译器问题相同,但在 3.2.2 中需要不同的修复。或者,如果我的代码中还有其他问题。

如果有人可以提供一些建议,那就太好了。没有什么建议太简单了。如果有另一种从外部文件导入数字的方法,我很想知道。另外,有谁知道是否有任何理由可以从 .dat 文件导入数据,但不能从 Mac 上的 .txt 文件导入数据?

谢谢你。

自从第一次发布以来,我已经包含了 wilhelmtell 的编辑。

目标:将文本文件中的数字读入称为“结果”的整数向量。

1)数据文件test.dat中的数据最初看起来像,

//测试

测试

'1' '2' '3'

// 文本文件中也有标签和注释,我不想读入但又不能从文件中删除。

0 投票
1 回答
346 浏览

c++ - C++:关于使用 getline() 从外部文件读取的后续问题。如何获取文件数据的子集?

我需要从外部文件中读取数字并将它们存储在整数向量中。多亏了 Howard Hinnant 和 wilhelmtell,我现在可以做到这一点,他们耐心地帮助找出了为什么我的编码昨天没有工作。

我一直在试图弄清楚如何将附加功能合并到代码中,但我已经用尽了我对流的了解,希望得到一些建议。

我希望能够处理包含多组数据的文件。是否可以仅将文件中的某些数据提取到向量中?我想最终得到几个包含来自文件不同部分的数据的向量。我在网上搜索,但没有看到任何提及这个。

这是我要从中获取数据的代码以及一个文件示例(我们称之为“测试”)。


编辑: 我根据 CashCow 的建议编辑了代码。我现在可以从数据文件中获取一个块。但我不知道如何获得我想要的块。如果我按原样运行代码,我会得到一个包含元素 2、5、8 的向量(这不是我想要的)。为了获得vectorTwo(在我制作的示例中为4,5,6),我尝试在while语句周围添加它:

它不起作用。我没有从运行代码中得到任何结果(虽然它已编译)。任何人都可以看到问题是什么?我想我可以使用这个语句来搜索我需要的数据块的标题。


//这里是示例文件的内容

vectorOne // 一个向量的数据子集标识符

'1' '2' '3'

vectorTwo // 我如何得到这个向量?还是其他任何一种载体?

'4' '5' '6'

vectorThree // 另一个向量的数据子集的标识符

'7' '8' '9'

// 代码:'\'' 字符是行分隔符。直到第一个 ' 之前的所有内容都被忽略,然后直到下一个 ' 之前的所有内容都是数字的一部分。这一直持续到逻辑失败(文件结束)。我怎样才能让它停在数据块的末尾呢?

0 投票
1 回答
1022 浏览

c++ - C++:从外部文件读取数据;我的代码在文件结束之前停止读取的问题

要使用我编写的代码来执行计算,我需要从外部文本文件中读取数据(数字和字符串)并将它们存储在字符串或整数/双精度的向量中。我为此编写了一个模板函数。CashCow、Howard Hinnant 和 wilhelmtell 帮助解决了之前的问题。

该函数似乎适用于整数/双精度数,但字符串数据有问题。

我需要来自外部文件的一行的数据进入向量,但函数读取多行。这就是我的意思。假设这是外部文本文件中的内容(如下):


vectorOne // 一个向量的数据子集标识符

'1' '2' '3' // 这些值应该进入一个向量,(vectorOne)

vectorTwo // 另一个向量 (vectorTwo) 的数据子集的标识符

'4' '5' '6' // 这些值应该进入不同的向量

vectorThree // 另一个向量 (vectorThree) 的数据子集的标识符

'7' '8' '9' // 这些值应该进入不同的向量


如果我寻找数据子集标识符/标签(如 vectorOne),我只希望下一行的数据进入我的结果向量。问题是标识符/标签下方的所有数据都以结果向量结尾。因此,如果 vectorTwo 是我想要的,我希望我的结果向量包含元素“4、5、6”。但实际上,它包含 4 到 9。在我的代码(如下)中,我认为该行:

确保读取将在换行处停止(即,在每行数据之后)。

对于出现问题的任何建议,我将不胜感激。

这是代码(为清楚起见,我将其配置为字符串):

谢谢

0 投票
1 回答
7254 浏览

c++ - 在 C++ 中,我将如何从文本文件中获取特定行并将其存储在 char 向量中?

我想让我的程序打开一个文本文件,转到特定行(例如,第 18 行)并将该行上的每个字符存储在 char 向量中。

一般来说,我对编程很陌生,所以这可能不是最好的方法,但这是我打算做的事情:

1)获取特定行并将其存储在字符串中

2) 将该字符串转换为 char 向量。我使用的是向量而不是数组,因此我可以使用 pushback() 使向量具有所需的确切大小,而不是在数组中分配太多或太少。

我可以很好地执行第 2 步,但这是第 1 步我遇到了麻烦。如何让它转到特定的行?

0 投票
1 回答
1814 浏览

c++ - 用 C++ 处理文本文件——从文本文件中提取某个字符串

我是 C++ 的新手。我有一个文本文件,其内容如下:

现在我要提取“Systemname”的值,即“localtesthost”。

我可以提取包含“Systemname localtesthost”的行,但我不知道如何提取字符串“Systemname”。

以下是我的程序需要帮助:

谁能告诉我如何提取字符串"localtesthost"

非常感谢!

0 投票
2 回答
1111 浏览

c++ - 使用 getline 提取信息并将它们存储在 c++ 中的数据类型中

这是我写的不完整的代码。

foo.txt 文件如下所示。

基本上,数字是 x 和 y 坐标。我需要的只是以易于阅读的数据类型提取数字,并且能够像矩阵一样访问它们。它应该存储为 4 个容器,4 行具有 [142, 310, 0, 959], [299, 467, 0, 959]...等等。

我尝试了 find() 函数,但我不确定如何正确使用它来将它们放入数据类型中。

如何仅提取数字并将它们存储在可以移动并像数组一样访问它们的数据类型中?

0 投票
1 回答
1272 浏览

c++ - C++ Getline 简单错误

我想指出我不擅长 C++,我通常使用 C,但我认为了解一些 C++ 基础会很好,所以我需要将数据发送到服务器并且普通 std::cin >> 变量不能做这是因为它只读取空间的输入,所以我阅读了有关 getline 的信息,它工作得很好,但是当我在无限循环中做一些事情时:

在第一次迭代时,它会在屏幕上显示双重 Hello,例如:正在输入的 Hello Hello 字符串

但是在一个循环之后,它显示一切都很好。我确定这是 getline 的问题,因为当我将其更改为 std::cin >> 只是为了进行测试时,它起作用了。有人可以回答我的简单问题吗?

0 投票
2 回答
507 浏览

c++ - C++ 菜鸟(流)... 如何从字符串有空格的文件中读取字符串(例如,Tom Smith)?使用 getline 而不是 >>

我编写了一个模板函数,用于从文件中读取字符串或数值数据,并将数据保存在字符串或整数/双精度的向量中。然后,我使用这些数据通过我编写的另一个代码执行计算。

提前道歉,因为我认为这是一个简单的问题......我无法读取有空格的字符串数据......例如,名字和姓氏。当我想要“Tom Smith”时,我只会得到“Tom”)。从谷歌搜索来看,问题似乎是 >> 而我应该使用 getline 。我尝试用getline(test,100)替换>>,但我得到一个“没有匹配函数调用std :: basic_istringstream ...”类型错误(错误:没有匹配函数调用'std :: basic_ifstream >::getline(double&)')

如果有人能纠正我,我将不胜感激!我似乎无法绕过溪流!

这是一些示例数据和我的代码。我在这里为字符串配置了它。

labelInFile // 一个向量的数据子集标识符

'Tom Smith' 'Jackie Brown' 'John Doe' // 这些名字最终应该作为向量中的元素

0 投票
1 回答
2470 浏览

c++ - 从另一个线程读取标准输入

我在 unix 上的代码中使用 p_threads。在我的主程序中,我有一个线程节点,它产生 2 个线程,其中一个线程正在使用 getline 从标准输入中读取。所有这些工作正常。除了在我的代码中的某个时刻,我必须“重新启动从标准输入读取的线程”。当我这样做时,我无法从标准输入中读取任何内容。

有什么建议我可能做错了吗???/

谢谢。

这是我从标准输入读取的部分

0 投票
4 回答
222 浏览

c - 我需要知道我是否正确使用 getline

我在 C 中使用 getline() 函数,当我多次使用它时,它一直给我段错误,就像在数组中一样。这是我写它的方式:

如果我声明不正确,请告诉我