C 读多个单词,后跟一个整数
我想使用fscanf阅读以下文本。但是,我尝试使用C 读多个单词,后跟一个整数,c,scanf,C,Scanf,我想使用fscanf阅读以下文本。但是,我尝试使用“fscanf(ifp)”、%[^d\n]%d”、title和stock“来阅读它。但它不起作用。整数总是包含在字符串中,我无法将字符串部分和整数部分分开 Logan 1 星球大战:盗贼一号5 怪物卡车6 动力游骑兵5 暴怒者的命运 变形金刚4 雷神2 蓝精灵1嗯,[^d\n]将匹配任何不包含文字d字符或换行符的字符运行,因此这不是您的意思-这将是[^0123456789\n]。不幸的是,这是不可能的。正则表达式可以工作,但这需要POSIX系统。
“fscanf(ifp)”、%[^d\n]%d”、title和stock“
来阅读它。但它不起作用。整数总是包含在字符串中,我无法将字符串部分和整数部分分开
Logan 1
星球大战:盗贼一号5
怪物卡车6
动力游骑兵5
暴怒者的命运
变形金刚4
雷神2
蓝精灵1
嗯,[^d\n]
将匹配任何不包含文字d
字符或换行符的字符运行,因此这不是您的意思-这将是[^0123456789\n]
。不幸的是,这是不可能的。正则表达式可以工作,但这需要POSIX系统。最好的选择是使用fgets
读取数字,并从末尾反向扫描数字。如果数字前总是有空格,而数字在行尾,那么您可以尝试strtok()
@Yunnosch,这就像答案第一句的从句。@AnttiHaapala您有道理。所以你不介意有人在这个基础上建立一个答案?(顺便说一句,链接到*scanf
;-)的基础知识很好@Yunnosch我不保留将我的评论扩展为答案的任何权利,如果这是你的意思:d