我正在尝试使用<table>
<tr>
<td><b> Question 1. </b> Match List-I with List-II and select the correct answer using the code given below the lists :</td>
</tr>
<tr>
<td>
<table class="tab_ques">
<tr>
<td>List-I (Town) </td>
<td>List-II( River Nearer to it)</td>
</tr>
<tr>
<td>A. Betul</td>
<td>1. Indravati</td>
</tr>
<tr>
<td>B. Jagdalpur</td>
<td>2.Narmada</td>
</tr>
<tr>
<td>C. Jabalpur</td>
<td>3.Shipra</td>
</tr>
<tr>
<td>D. Ujjain</td>
<td>4.Tapti</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table class="tab_opt">
<tr>
<td> </td>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
</tr>
<tr>
<td> a. </td>
<td> 1 </td>
<td> 4 </td>
<td> 2 </td>
<td> 3 </td>
</tr>
<tr>
<td> b. </td>
<td> 4 </td>
<td> 1 </td>
<td> 2 </td>
<td> 3 </td>
</tr>
<tr>
<td> c. </td>
<td> 1 </td>
<td> 4 </td>
<td> 3 </td>
<td> 2 </td>
</tr>
<tr>
<td> d. </td>
<td> 4 </td>
<td> 1 </td>
<td> 3 </td>
<td> 2 </td>
</tr>
</table>
</td>
</tr>
<tr>
<td><a href="ans_nobelprize_p1.html">Answer</a></td>
</tr>
<tr>
<td><b> Question 2. </b> Consider the following statement : </td>
</tr>
<tr>
<td>1.The nation-wide scheme of the National Child Labour Projects (NCLP) is run Union Ministry of Social Justice amd Empowerment.<br>
2.Gurupadswamy Committee dealt with the issue of child labour.
</td>
</tr>
<tr>
<td>Which of the statements given above is/are correct?</td>
</tr>
<tr>
<td>
<table>
<tr>
<th> a. </th>
<td> 1 only </td>
</tr>
<tr>
<th> b. </th>
<td> 2 only </td>
</tr>
<tr>
<th> c. </th>
<td> Both 1 and 2 </td>
</tr>
<tr>
<th> d. </th>
<td> Neither 1 nor 2</td>
</tr>
</table>
</td>
</tr>
</table>
从文件中读取。我正在尝试的文件
阅读有这个内容:
fstream
我的代码:
1200
1000
980
890
760
输出结果为:
#include <fstream>
#include <iostream>
using namespace std;
int main ()
{
fstream file("highscores.txt", ios::in | ios::out);
if (!file.is_open())
{
cout << "Could not open file!" << endl;
return 0;
}
int cur_score;
while (!file.eof())
{
file >> cur_score;
cout << file.tellg() << endl;
}
}
为什么在第一次阅读9
14
18
22
26
后返回9,
第一个读数是数字(1200),即4个位置
我知道有tellg()
和\r
所以这就是6个职位。也。如果我在我的文件中添加更多号码\n
将会
首次阅读后返回更大的数字。
答案 0 :(得分:2)
如果您使用文本编辑器以UTF8格式保存文件,则文件开头可能会有UTF8 BOM。这个BOM是3个字符长,所以添加到6,它会使9。
如果您想确定,请查看文件的开头,并使用:
fstream file("highscores.txt", ios::in | ios::out | ios::binary);
if(file) {
char verify[16];
file.read(verify, sizeof(verify));
int rd = file.gcount();
for(int i = 0; i<rd; i++) {
cout << hex << setw(2) << (int)verify[i] << " ";
}
cout <<dec << endl;
}
修改强>
在文件上运行带有MSVC2013的窗口,我发现了预期的4,10,15,20,25,我无法重现您的数据。
我现在用mingw做了一个测试,在这里我得到了你的数字,增加行数的奇怪效果增加了输出。
当您在文本模式下阅读Windows(CRLF行分隔符)文件时,这是MINGW的错误:
如果我以UNIX风格保存文件(即LF行分隔符),我会得到相同的程序4,9,13,17,这也是linux系统的预期值。
如果我以WINDOWS样式保存文件(即CRLF行分隔符),如果我更改代码以在ios::binary
中打开文件,我就会得到等待的4,10,15,20, 25。
显然它是old problem。