将整数从C++中的文本文件移动到三列中

guz6ccqo  于 2023-04-01  发布在  其他
关注(0)|答案(1)|浏览(127)

我们被告知要为一项作业创建一个游戏,并将其显示在图表中。我们得到了一个txt.文件,该文件将游戏分数显示为game1,game2和game3,并以分数列显示。在填写代码打开txt.文件并显示分数后,所有整数都显示在一列中。我不知道如何使它们显示为三列。
这是一个txt.文件,用于在输出窗口中显示三列分数:

187  162  171
199  123  175
151  126  165
136  121  149
177  181  187
173  173  173
181  188  172
196  197  199
199  200  193
199  200  200
162  171  180
117  162  156
161  179  192
151  159  163
185  184  189
173  169  168
184  189  171
165  141  157
192  194  196
191  163  164
173  174  161
153  141  137
191  196  194
199  200  199
106  104  1
133  142  140
108  106  118

这是我的代码:

ifstream infile;
        
infile.open("teams.txt");
        
if (infile.fail()) 
    {
        cout << "teams.txt did not open" << endl;
        exit (-1);
    }
                
int score;
                    
infile >> score;
                    
while (infile)
    {
        cout << score << endl;
            
        infile >> score;
        cout << score << endl;
                
        infile >> score;
        cout << score << endl;
                
        cout << endl;
    }
            
infile.close();

在输出窗口中,将显示:

187
162
171

171
199
123

123
175
151

151
126
165

165
136
121

121
149
177

177
181
187

187
173
173

173
173
181

181
188
172

172
196
197

197
199
199

199
200
193

193
199
200

200
200
162

162
171
180

180
117
162

162
156
161

161
179
192

192
151
159

159
163
185

185
184
189

189
173
169

169
168
184

184
189
171

171
165
141

141
157
192

192
194
196

196
191
163

163
164
173

173
174
161

161
153
141

141
137
191

191
196
194

194
199
200

200
199
106

106
104
1

1
133
142

142
140
108

108
106
118

118
118
118

正如你所看到的,187、162和171分别是game1、game2和game3的分数,但它们是一起出现的,而不是分开的。此外,我不知道为什么它在换行后重复最后一个数字作为第一个数字。
任何帮助都将不胜感激

lyr7nygr

lyr7nygr1#

试试这样的方法:

ifstream infile("teams.txt");
if (!infile) 
{
    cout << "teams.txt did not open" << endl;
    exit (-1);
}
                
int score1, score2, score3;
                    
while (infile >> score1 >> score2 >> score3)
{
    // format the output however you want...
    cout << score1 << '\t' << score2 << '\t' << score3 << endl;
}
            
infile.close();

相关问题