#define String char*
#define FileP FILE*
#define null ((void*) 0)
#include "defs.h"
int main(int argc, char** argv) {
Stack stack;
init(&stack);
FileP file = readp("Props.props");
if (file == null){
printf("Unable to Load\n");
exit(1);
}
String buffer;
int m = 0;
char ch;
while (!feof(file)) {
ch = getc(file);
if (ch != ' ') {
*(buffer + (m++)) = ch;
} else {
push(&stack, buffer);
m = 0;
}
}
int i;
for (i = 0; i < MAX_SIZE; i++) {
printf("%s\n", pop(&stack));
}
fclose(file);
return 0;
}
defs.h包含所有#defines,但是我把它们包含在这里,所以你知道它们是什么。该程序打开一个名为“props.props”的文本文件,读取每个字符串,然后将它们存储到堆栈中,最后打印出堆栈。在运行时没有任何事情发生,只是由于运行时错误而退出。为什么会这样?
答案 0 :(得分:1)
buffer
未初始化。你需要用
buffer = (char*) malloc(n * sizeof (char));
其中n是您需要存储的字符数。
此外,该文件似乎没有在任何地方打开(fopen
)。什么是readp
?