总结
从string得到char*可以通过.data()或者通过.c_str()来得到,前者不会多添加"\0",后者会添加"\0";
C默认的文件指针是FILE* fp=fopen(FILENAME,MODE);
double对应的读取格式为%lf
fun.h
#ifndef FUN_H
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
void ReadDataFromTxt(string Filename, vector<double>& x, vector<double>& y);
#endif // !FUN_H
fun.cpp
#include "fun.h"
void ReadDataFromTxt(string Filename, vector<double>& x, vector<double>& y) {
FILE* fp = fopen(Filename.data(), "r");
double tempx, tempy;
while (fscanf(fp,"%lf %lf", &tempx, &tempy) != EOF) {
x.push_back(tempx);
y.push_back(tempy);
}
}
main.cpp
#include<iostream>
#include<fstream>
#include"fun.h"
#pragma warning(disable:4996)
using namespace std;
int main() {
vector<double> x, y;
ReadDataFromTxt("DArrowData.txt", x, y);
for (int i = 0; i < x.size(); i++) {
printf("%lf %lf \n", x[i], y[i]);
}
return 0;
}