c++读取文件及输入到文件的相关问题
来源:互联网 发布:1911淘宝交易 编辑:程序博客网 时间:2024/06/11 09:53
错误1.
fscanf(fi, "%s %i %i %i %i %s", e, &eid, &vstart, &vend, &weight,label);fprintf(fo, "%i\t%i\t%i\n", vstart, vend, weight);
但是一直读出来都是7位负值,每个都不对。
原因:因为源数据的存储就是一个str长串。这样是读不出来数据的。
错误2:
fopen("xxx","rb或者wb")
都应该用fread(),fwrite();而只有“r” "w“ 才能用fscanf(),fprintf();
所以最后的代码:
#include<iostream>#include<stdlib.h>#include<stdio.h>#include<string.h>#include<vector>#define MAX_STRING 100using namespace std;vector<string> split(const string &s, const string &seperator) {vector<string> result;typedef string::size_type string_size;string_size i = 0;while (i != s.size()) {//找到字符串中首个不等于分隔符的字母;int flag = 0;while (i != s.size() && flag == 0) {flag = 1;for (string_size x = 0; x < seperator.size(); ++x)if (s[i] == seperator[x]) {++i;flag = 0;break;}}//找到又一个分隔符,将两个分隔符之间的字符串取出;flag = 0;string_size j = i;while (j != s.size() && flag == 0) {for (string_size x = 0; x < seperator.size(); ++x)if (s[j] == seperator[x]) {flag = 1;break;}if (flag == 0)++j;}if (i != j) {result.push_back(s.substr(i, j - i));i = j;}}return result;}int main() {FILE *fi, *fo;string e;int eid, vstart, vend, weight;int a = 1, b = 2, c = 3, d = 4;char str[2 * MAX_STRING + 100];const char *sep = " ";fi = fopen("2015-9-7-11zaolabel.txt", "r");fo = fopen("traffic_network.txt", "w");if (fi == NULL) {printf("Error:network file not exist!\n");system("pause");exit(1);}int num_edges = 0;while (fgets(str, sizeof(str), fi)) { vector<string> v = split(str, " ");vstart = atoi(v[2].c_str());vend = atoi(v[3].c_str());weight = atoi(v[4].c_str());fprintf(fo, "%i\t%i\t%i\n", vstart, vend, weight);num_edges++; }fclose(fi);fclose(fo);return 0;}
阅读全文
0 0
- c++读取文件及输入到文件的相关问题
- C语言读取输入的字符并写入到文件中
- Java读取properties文件及相关问题总结
- 用c语言输入学生信息保存到文件中并读取文件内容
- c语言相关文件的输入和输出
- 读取文件的问题
- 读取文件的问题
- 读取文件,到标准输入流(c语言 和 c++版)
- 很棒的!从标准输入文件流读取多行数据并且存放到文件---两种实现;标准输入流到文件再到标准输出流
- lua加载文件 读取数据到C
- C语言读取整个文件到内存
- c读取文件保存到mysql
- Scanner读取文件输入
- 文件读取与输入
- 读取.dat文件所遇到的问题及解决办法
- 文件的打开及读取
- 文件的保存及读取
- Linux C的文件操作及相关函数
- Jeddict快速上手
- Yii2安装,关于The file or directory to be published does not exist错误
- 排序算法(1)
- win10 64位下 python3.6的scrapy框架安装
- 简单的修改与删除
- c++读取文件及输入到文件的相关问题
- Mac terminal
- 排序算法(2)
- angularjs修改查询
- banner 简单的实现无线轮播的控件
- 人工智能实践教程(四)
- windows使用命令行快速删除当前目录下所有指定后缀的文件
- bzoj2037 创世纪
- JavaWeb---Http和Servlet