(C++) 在 fstream 中搜索截断字符
(C++) Seekg in fstream cutting off characters
所以我不完全确定为什么会这样。我试过在我正在读取的 txt 文件中的单词之前添加空格,它修复了一些,但不是全部。基本上我只是想 return 一个名字,文件中的每个名字都在不同的行上。但是当我打印名字时,其中一些被截断了,比如 "Dillon" 将是 "llon" 或 "Stephanie" 将是 "phanie" 等等。下面是seekg的使用:
string Employee::randomFirstName()
{
int i;
string fName;
i = rand() % 100;
ifstream firstName;
firstName.open("First Names.txt", ios::out);
firstName.seekg(i);
firstName >> fName;
return fName;
}
所以,我会 post txt 文件,但它只是一个名称列表,每行一个,共 100 个。我已经尝试查找使用 seekg 的示例,但我似乎无法弄清楚为什么它会切断一些。此外,它只是有时会中断。一个输出它会打印 "Dillon" right,接下来它会打印 "llon".
如有任何帮助,我们将不胜感激
istream::seekg()
将移动到 个字符 的位置。因此,寻找 0 到 99 (rand() % 100
) 之间的随机字符位置可能会在一行的中间结束。 seekg
无法知道您想查找行号:它没有行的概念。
您可以使用 std::getline
次数 i
次来到达该特定行。
所以我不完全确定为什么会这样。我试过在我正在读取的 txt 文件中的单词之前添加空格,它修复了一些,但不是全部。基本上我只是想 return 一个名字,文件中的每个名字都在不同的行上。但是当我打印名字时,其中一些被截断了,比如 "Dillon" 将是 "llon" 或 "Stephanie" 将是 "phanie" 等等。下面是seekg的使用:
string Employee::randomFirstName()
{
int i;
string fName;
i = rand() % 100;
ifstream firstName;
firstName.open("First Names.txt", ios::out);
firstName.seekg(i);
firstName >> fName;
return fName;
}
所以,我会 post txt 文件,但它只是一个名称列表,每行一个,共 100 个。我已经尝试查找使用 seekg 的示例,但我似乎无法弄清楚为什么它会切断一些。此外,它只是有时会中断。一个输出它会打印 "Dillon" right,接下来它会打印 "llon".
如有任何帮助,我们将不胜感激
istream::seekg()
将移动到 个字符 的位置。因此,寻找 0 到 99 (rand() % 100
) 之间的随机字符位置可能会在一行的中间结束。 seekg
无法知道您想查找行号:它没有行的概念。
您可以使用 std::getline
次数 i
次来到达该特定行。