所以我不完全确定为什么会这样。我尝试在我读取的txt文件中的单词之前添加空格,并为某些内容修复它,但不是全部。基本上我只想尝试返回一个名字,文件中的每个名字都在不同的行上。但是,当我打印这些名字时,其中一些被剪掉了,就像"狄龙"将是" llon"或者"斯蒂芬妮"将是" 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;
}
所以,我会发布txt文件,但它只是一个名单列表,每行一个,其中100个。我试过查找使用seekg的例子,但我似乎无法弄清楚为什么它会切断一些。而且,它有时只会中断。一个输出它打印出来"狄龙"是的,接下来它会打印" llon"。
任何帮助将不胜感激
答案 0 :(得分:4)
istream::seekg()
将移至字符位置。因此,寻找0到99之间的随机字符位置(rand() % 100
)可能最终会出现在一行中间。 seekg
无法知道您想要寻找一个行号:它没有行的概念。
您可以使用std::getline
i
次来到达该特定行。