第一次张贴到Stack Overflow,招呼任何可以帮助的人。C - 从标准输入读取字符串&int(或从文件重定向)
我的主程序遇到问题,它应该“从stdin(或从文件重定向)读取字符串和整数对(字符串后跟int,每行一对)并按照它们的顺序插入这些对读入最初为空的二叉搜索树。“
已经测试了二叉搜索树插入&使用提供的测试用例本身,我知道我的插入&遍历工作。但是,我努力在同一行读取字符串& int,并且不确定如何实现文件重定向(我可以在UNIX服务器上使用cat命令将其上传到?)。
这里是我的main.c
#include <stdio.h>
#include "bst.h"
int main(void)
{
BStree bst;
int size;
char quit;
char *str;
int num;
printf("Please enter the size of the tree: ");
scanf("%d", &size);
bst = bstree_ini(size);
printf("Please enter the first key (str) & data (int) you wish to enter, separated by whitespace: ");
while ((scanf(" %s %d", str, &num)) == 2) {
bstree_insert(bst, *str, num);
printf("Please enter Q/q if you wish to stop entering, else continue: ");
scanf(" %c", &quit);
if(quit == 'Q' || quit == 'q')
break;
printf("Please enter the new key (str) then the data (int): ");
scanf("%s %d", str, &num);
}
bstree_traversal(bst);
bstree_free(bst);
}
我试图用一个while循环用scanf函数条件== 2测试如果两个字符串和INT被正确读取,但是我的实现是错误的(程序崩溃在达到while循环时)。
我完全在错误的轨道上吗?还是有一个逻辑错误,我只是失去了平淡?再次感谢!
不错的第一次后,我必须说。 –