gpt4 book ai didi

C - 从标准输入(或从文件重定向)读取字符串和整数

转载 作者:太空狗 更新时间:2023-10-29 15:34:39 25 4
gpt4 key购买 nike

Stack Overflow 的首次发布者,为任何可以提供帮助的人欢呼。

我的主程序有问题,它应该“从标准输入(或从文件重定向)读取字符串和整数对(字符串后跟 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);
}

我尝试使用带有 scanf 条件 == 2 的 while 循环来测试字符串和 int 是否都被正确读取,但我的实现是错误的(程序在到达 while 循环时崩溃)。

我是不是完全走错了路?或者是否存在逻辑错误,我只是想念它?再次感谢!

最佳答案

您需要为 str 分配内存,请尝试使用 char str[256] 而不是 char * str。

同时从 while 循环的底部删除 scanf,这是没有必要的。

关于C - 从标准输入(或从文件重定向)读取字符串和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42866469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com