从.txt文件中读取浮点型数字并在公式中使用它们
Reading float type numbers from a .txt file and using them in formulas
我正在尝试从.txt文件中读取数字并在代码中的公式中使用它们,并将结果输出到另一个.txt文件中,以便我可以更轻松地使用它们。我的问题是读取 3000 行数字并将它们分配要在公式中使用的变量。第一列我需要变量 dt,第二列我希望它是变量 i。无论出于何种原因,我都无法让他们正确阅读。这是我的代码。
#include <stdlib.h>
#include <stdio.h>
void GetAcc(const float Acc[], const float Vel[], float Pos[], float dt);
void GetVel(const float Acc[], float Vel[], float dt);
int main()
{
float Position[3000]={0};
float Velocity[3000]={0};
float Acceleration[3000]={0};
float i;
float dt;
FILE *fp;
fp=fopen("M3 Array File.txt", "r+");
fscanf(fp,"%f",&dt);
fscanf(fp,"%f",&i);
GetVel(Acceleration,Velocity,dt);
GetAcc(Acceleration,Velocity,Position,dt);
for(i=0;i<3000;i++) fprintf(fp,"%3.3ft%3.3ft%3.3ft%3.3fn",dt*(float)i,Acceleration[i],Velocity[i],Position[i]);
fclose(fp);
return 0;
}
void GetVel(const float Acc[], float Vel[], float dt)
{
int i;
for(i=1;i<3000;i++)
{
Vel[i]=Vel[i-1]+Acc[i]*dt;
}
}
void GetAcc(const float Acc[], const float Vel[], float Pos[], float dt)
{
int i;
for(i=1;i<3000;i++)
{
Acc[i]=2*Pos[i]-Pos[i-1]-Vel[i-1];
}
}
下面是文件外观的示例。
0.000 0.000
0.001 0.000
0.002 0.000
0.003 0.000
0.004 0.000
0.005 0.000
0.006 0.000
0.007 0.000
0.008 0.000
0.009 0.000
0.010 0.000
0.011 0.000
0.012 0.000
0.013 0.000
0.014 0.000
0.015 0.000
0.016 0.000
0.017 0.000
0.018 0.000
0.019 0.000
0.020 0.000
0.021 0.000
0.022 0.000
0.023 0.000
0.024 0.000
0.025 0.000
0.026 0.000
0.027 0.000
0.028 0.000
0.029 0.000
0.030 0.002
0.031 0.003
0.032 0.005
0.033 0.005
0.034 0.005
0.035 0.005
0.036 0.005
0.037 0.006
0.038 0.008
0.039 0.009
0.040 0.011
0.041 0.012
0.042 0.012
0.043 0.012
0.044 0.012
0.045 0.014
0.046 0.015
0.047 0.017
0.048 0.018
0.049 0.020
0.050 0.021
0.051 0.023
0.052 0.025
0.053 0.026
0.054 0.028
0.055 0.029
0.056 0.031
0.057 0.032
0.058 0.034
0.059 0.035
0.060 0.037
0.061 0.040
0.062 0.043
0.063 0.046
0.064 0.049
0.065 0.052
0.066 0.054
0.067 0.055
0.068 0.057
0.069 0.060
0.070 0.063
0.071 0.066
0.072 0.069
0.073 0.072
0.074 0.075
0.075 0.078
0.076 0.081
0.077 0.084
0.078 0.087
0.079 0.091
0.080 0.095
0.081 0.100
0.082 0.104
0.083 0.109
0.084 0.114
0.085 0.117
0.086 0.120
0.087 0.123
0.088 0.127
0.089 0.132
0.090 0.137
0.091 0.141
0.092 0.146
0.093 0.150
0.094 0.155
0.095 0.161
0.096 0.167
0.097 0.173
0.098 0.179
0.099 0.184
0.100 0.189
0.101 0.193
0.102 0.199
0.103 0.206
0.104 0.212
0.105 0.218
0.106 0.224
0.107 0.230
0.108 0.236
0.109 0.242
0.110 0.250
0.111 0.258
0.112 0.265
0.113 0.273
0.114 0.281
0.115 0.288
0.116 0.296
0.117 0.304
0.118 0.311
0.119 0.319
0.120 0.327
0.121 0.334
0.122 0.342
0.123 0.350
0.124 0.359
0.125 0.368
0.126 0.377
0.127 0.387
0.128 0.396
0.129 0.405
0.130 0.414
0.131 0.423
0.132 0.433
0.133 0.442
0.134 0.451
0.135 0.460
0.136 0.471
0.137 0.482
0.138 0.492
0.139 0.503
0.140 0.514
0.141 0.525
0.142 0.535
0.143 0.546
0.144 0.557
0.145 0.569
0.146 0.581
0.147 0.594
0.148 0.606
0.149 0.618
0.150 0.630
0.151 0.643
0.152 0.655
0.153 0.667
0.154 0.680
0.155 0.692
0.156 0.706
0.157 0.719
0.158 0.733
0.159 0.747
0.160 0.761
0.161 0.775
0.162 0.788
0.163 0.802
0.164 0.816
0.165 0.830
0.166 0.845
0.167 0.861
0.168 0.876
0.169 0.891
0.170 0.907
0.171 0.922
0.172 0.937
0.173 0.953
0.174 0.969
0.175 0.986
0.176 1.003
0.177 1.020
0.178 1.037
0.179 1.054
0.180 1.071
0.181 1.088
0.182 1.104
0.183 1.121
0.184 1.140
0.185 1.158
0.186 1.177
0.187 1.195
0.188 1.213
0.189 1.232
0.190 1.250
0.191 1.269
0.192 1.287
0.193 1.307
0.194 1.327
0.195 1.347
0.196 1.367
0.197 1.387
0.198 1.407
0.199 1.427
0.200 1.447
0.201 1.468
0.202 1.489
0.203 1.511
0.204 1.532
0.205 1.554
0.206 1.575
0.207 1.597
0.208 1.618
0.209 1.640
0.210 1.663
0.211 1.686
0.212 1.709
0.213 1.732
0.214 1.755
0.215 1.778
0.216 1.801
0.217 1.824
0.218 1.848
0.219 1.873
0.220 1.898
0.221 1.922
0.222 1.947
0.223 1.971
0.224 1.996
0.225 2.020
0.226 2.045
0.227 2.071
0.228 2.097
0.229 2.123
0.230 2.149
0.231 2.175
0.232 2.201
0.233 2.227
0.234 2.255
0.235 2.283
0.236 2.310
0.237 2.338
0.238 2.365
0.239 2.393
0.240 2.421
0.241 2.448
0.242 2.476
0.243 2.505
0.244 2.534
0.245 2.563
0.246 2.592
0.247 2.622
0.248 2.651
0.249 2.680
0.250 2.709
0.251 2.740
0.252 2.770
0.253 2.801
0.254 2.832
0.255 2.862
0.256 2.893
0.257 2.924
0.258 2.954
0.259 2.987
0.260 3.019
0.261 3.051
0.262 3.083
0.263 3.116
0.264 3.148
0.265 3.180
0.266 3.212
0.267 3.246
0.268 3.280
0.269 3.313
0.270 3.347
0.271 3.381
0.272 3.415
0.273 3.448
0.274 3.482
0.275 3.517
0.276 3.553
0.277 3.588
0.278 3.623
0.279 3.659
0.280 3.694
0.281 3.729
0.282 3.764
0.283 3.800
0.284 3.836
0.285 3.873
0.286 3.910
0.287 3.947
0.288 3.984
0.289 4.021
0.290 4.057
0.291 4.094
0.292 4.133
0.293 4.171
0.294 4.209
0.295 4.248
0.296 4.286
0.297 4.324
0.298 4.363
0.299 4.401
0.300 4.439
0.301 4.479
0.302 4.519
0.303 4.559
0.304 4.599
0.305 4.639
0.306 4.679
0.307 4.719
0.308 4.758
0.309 4.800
0.310 4.841
0.311 4.883
0.312 4.924
0.313 4.965
0.314 5.007
0.315 5.048
0.316 5.090
0.317 5.131
0.318 5.174
0.319 5.217
0.320 5.260
0.321 5.303
0.322 5.346
0.323 5.389
0.324 5.432
0.325 5.475
0.326 5.518
0.327 5.562
0.328 5.607
0.329 5.651
0.330 5.696
0.331 5.740
0.332 5.785
0.333 5.829
0.334 5.874
0.335 5.918
0.336 5.963
0.337 6.009
0.338 6.055
0.339 6.101
0.340 6.147
0.341 6.193
0.342 6.239
0.343 6.285
0.344 6.331
0.345 6.378
0.346 6.426
0.347 6.473
你可以在 c++ 中使用 tokenize
将字符串拆分为两个带有空格
#include <vector>
#include <string>
#include <sstream>
#include <iterator>
string line;
istringstream buf(line);
istream_iterator<string> beg(buf), end;
vector<string> tokens(beg, end);
cout << "1st sub String : " << tokens[0];
cout << "2nd sub String : " << tokens[1];
将字符串转换为 int
int n;
stringstream num(tokens[1]);
num >> n;
这些片段可能会对您有所帮助,参考:
https://binaramedawatta.blogspot.com/2018/12/supporting-code-snippets-for-oop-take.html
https://www.geeksforgeeks.org/converting-strings-numbers-cc/
http://www.cplusplus.com/forum/beginner/87238/
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 一种在C++中读取TXT配置文件的简单方法
- 无法打开.txt文件
- 如何使用CLion在Mac上创建一个新的.txt文件
- 我可以读取静态对象中的文件.txt吗?C++
- C++-需要读取存储在文件(.txt)中的时间戳并正确检索
- 具有文件.txt的 C++ 中的设置
- 如何在 CMakeList 中包含 h/hpp 头文件.txt而不是 cpp 或其他 hpp 文件
- 使用函数读取文件.txt中的矩阵
- 任何人都知道如何解决尝试将从MySQL数据库返回的行打印到文本文件(.txt)中的C++
- 读取文件.txt C
- 为什么我的方法不从文件.txt中读取float类型
- 如何读取名称(仅文件.txt)作为参数传递的文件(在任何目录中)?C++
- 读取文件".txt"并将每行的数据分配给循环列表中的新节点C++
- 如何用C++将字符串文件Txt解析成数组
- 如何在c++中读取和编辑文件txt
- 从文件.txt读取字符串数组并使用它来玩康威的生命游戏
- 导入文件txt时出错
- 如何仅读取文件.txt中的数字