小编jum*_*umm的帖子

读取String中的fscanf问题

我正在读一个.txt文件.我正在使用fscanf来获取格式化的数据.我遇到问题的这条线是这样的:

result = fscanf(fp, "%s", ap->name);
Run Code Online (Sandbox Code Playgroud)

这是好的,直到我有一个空格的名称,例如:St Ives所以我用这个来读取空白区域:

result = fscanf(fp, "%[^\n]s", ap->name);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试读取第一个名称(没有空白区域)时,它只是不起作用并且弄乱了其他的fscanf.

但我使用[^ \n]它在我正在使用的不同文件中工作正常.不确定发生了什么.

如果我在fscanf的位置使用fgets,我会在变量中得到"\n".

编辑//

好的,所以如果我使用:

result = fscanf(fp, "%s", ap->name);
result = fscanf(fp, "%[^\n]s", ap->name);
Run Code Online (Sandbox Code Playgroud)

这允许我读入没有空格的字符串.但是当我得到一个带有空格的"名字"时它不起作用.

c scanf

5
推荐指数
2
解决办法
3万
查看次数

带有return的C函数类型的递归

这是一个快速的问题,我做了一个搜索,但找不到任何回答我的问题.

在C中执行递归函数时,即使使用void函数也需要返回吗?

例如:

    void addToLL(structA_ptr new, structA_ptr cur) {
        if (cur->next == NULL) {
             cur->next = new;
        } else {
             addToLL(new, cur->next);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我是否需要在调用函数之前放置一个return关键字?我知道如果函数会返回一些东西,比如在LL中搜索某些内容,则需要一个return语句.

c recursion

4
推荐指数
1
解决办法
2764
查看次数

AND的SQL查询问题

我有一个表,其中包含保存材料的另一个主题类型.然后,我有另一个表,其中包含每个表的键,从而创建多对多的关系.

但是,当我尝试搜索主题以选择两个共享相同材料的主题时,它不起作用.

示例表:

材料表:

MatID | Name
---------------
1     | book1
2     | note23
Run Code Online (Sandbox Code Playgroud)

主题表:

TID | topic
---------------
1   | computer
2   | database
Run Code Online (Sandbox Code Playgroud)

MatTop表:

TID | MatID
------------
1   | 2
2   | 2
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

SELECT * FROM material
INNER JOIN mattop ON material.MatID = mattop.MatID
INNER JOIN topic ON mattop.TID = topic.TID
WHERE (topic.topic = 'computer') AND (topic.topic = 'database')
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

编辑 - 我知道AND是抱歉的错误.我的意思是如何让它输出具有与之相关的主题的材料.

sql inner-join

1
推荐指数
1
解决办法
97
查看次数

标签 统计

c ×2

inner-join ×1

recursion ×1

scanf ×1

sql ×1