求问:错在哪里?
1 #include <iostream>
2 #include <fstream>
3 #include <string>
4 using namespace std;
5
6 void ReadData()
7 {
8 ifstream fin("run-X3-100001.pdb");
9 string s2;
10 const string s1 = "CA";
11 while( fin >> s2 )
12 {
13 if(s2=s1)
14 {
15 ifstream fin("run-X3-100001.pdb");
16 string s;
17 while( getline(fin,s) )
18 {
19 cout << "Read from file: " << s << endl;
20 }
21 }
22 }
23 }
24
25 int main()
26 {
27 ReadData();
28 }
上面这个程序的目的是将文件中有“CA”的行输出,过程是:先逐词读取文件,遇到“CA”时,将此行输出。提示错误是:could not convert ‘s2.std::basic_string<_CharT, _Traits, _Alloc>::operator= [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]((* & s1))’ from ‘std::basic_string<char>’ to ‘bool’
不知道该如何修改,请各位指点,谢谢!
文件内容如下:
ATOM 5751 HN GLY L 29 9.895 5.339 -3.515 0.00 0.00 L
ATOM 5752 CA GLY L 29 11.104 4.554 -1.965 0.00 0.00 L
ATOM 5753 HA1 GLY L 29 11.167 4.645 -0.926 0.00 0.00 L
ATOM 5754 HA2 GLY L 29 11.010 3.546 -2.342 0.00 0.00 L
ATOM 5755 C GLY L 29 12.337 5.145 -2.657 0.00 0.00 L
ATOM 5756 O GLY L 29 12.360 5.498 -3.830 0.00 0.00 L
ATOM 5757 N GLY L 30 13.444 5.272 -1.955 0.00 0.00 L
ATOM 5758 HN GLY L 30 13.372 5.115 -0.959 0.00 0.00 L
ATOM 5759 CA GLY L 30 14.757 5.681 -2.497 0.00 0.00 L
ATOM 5760 HA1 GLY L 30 14.925 5.292 -3.546 0.00 0.00 L
ATOM 5761 HA2 GLY L 30 14.975 6.681 -2.289 0.00 0.00 L
ATOM 5762 C GLY L 30 15.844 4.984 -1.768 0.00 0.00 L
ATOM 5763 O GLY L 30 15.982 4.881 -0.519 0.00 0.00 L
ATOM 5764 N VAL L 31 16.786 4.350 -2.524 0.00 0.00 L
ATOM 5765 HN VAL L 31 16.686 4.447 -3.533 0.00 0.00 L
ATOM 5766 CA VAL L 31 17.839 3.545 -2.095 0.00 0.00 L
ATOM 5767 HA VAL L 31 18.146 4.001 -1.124 0.00 0.00 L
ATOM 5768 CB VAL L 31 17.397 2.120 -1.721 0.00 0.00 L
ATOM 5769 HB VAL L 31 16.684 2.152 -0.832 0.00 0.00 L
ATOM 5770 CG1 VAL L 31 16.760 1.316 -2.877 0.00 0.00 L
ATOM 5771 HG11 VAL L 31 16.367 0.321 -2.572 0.00 0.00 L
ATOM 5772 HG12 VAL L 31 15.950 1.901 -3.339 0.00 0.00 L
ATOM 5773 HG13 VAL L 31 17.512 1.143 -3.637 0.00 0.00 L
ATOM 5774 CG2 VAL L 31 18.569 1.264 -1.201 0.00 0.00 L
ATOM 5775 HG21 VAL L 31 19.221 0.869 -2.012 0.00 0.00 L
ATOM 5776 HG22 VAL L 31 19.219 1.931 -0.690 0.00 0.00 L
ATOM 5777 HG23 VAL L 31 18.219 0.455 -0.599 0.00 0.00 L[color=#FF0000][/color]
[解决办法]
13 if(s2=s1)
应该是:
13 if(s2==s1)
[解决办法]
LS好眼力
[解决办法]