我是用C++新(和文件输入输出),我学会了如何使用fprint打印从.txt东西在一个格式化的风格,但如何搜索某个值并将该值保存在局部变量中?下面是代码保存:读一个.txt文件保存在CPP和保存价值的局部变量
void savestate(state a){ //state is a struct with data I need such as position etc
FILE * save;
int data[]= { a.level, a.goalX, a.goalX, a.monX, a.monY };
save = fopen("game.txt", "wb"); // << might have to use suggestion C
fwrite(data, sizeof(int), sizeof(data), save); // is this actually the correct way to do it?
fclose(save);
}
为负载,我坚持这一点:
void loadstate(){
FILE* save;
save = fopen("game.txt", "rb");
if(save== NULL) perror("no savegame data");
else{
// don't even know what function I should use
}
顺便说一句,我以后激活保存功能,game.txt中不以相当可读的格式。我可以在我的记事本中打开,但是它显示了一些像“ÌÌÌÌÌÌÌÌÌÌøøÁ_ÌÌÌÌ̃ƒ”这种没有意义的东西。任何想法? :d写作的
不要将'.txt'文件写成二进制文件。您正在编写位,而不是上面的代码中的ASCII。 'fwrite'的参数是'buffer,size,count,stream' - 'sizeof(data)'不是'data'中元素个数的个数。 – Yakk 2014-10-29 15:19:21
@Yakk对不起,我不是很懂,我在cplusplus教程中遵循了一个例子。我怎么知道我是否将.txt写成二进制文件和ASCII码?我会尝试改变的sizeof只是5然后 – Rei 2014-10-29 15:24:29
在C++中使用标准的类和函数[I/O库(http://en.cppreference.com/w/cpp/io)!如果你坚持使用'FILE *',使用'fprintf()'函数将文本写入文件。 – 2014-10-29 15:27:22