第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在循環(huán)中使用scanf?

如何在循環(huán)中使用scanf?

C
慕勒3428872 2019-06-16 15:01:02
如何在循環(huán)中使用scanf?是否有一種很好的方法來(lái)循環(huán)字符串sscanf?假設(shè)我有一條看起來(lái)像這樣的字符串:char line[] = "100 185 400 11 1000";我想打印這筆錢。我真正想寫(xiě)的是:int n, sum = 0;while (1 == sscanf(line, " %d", &n)) {   sum += n;   line += <number of bytes consumed by sscanf>}但是沒(méi)有干凈的方法可以把這些信息從sscanf..如果它返回所消耗的字節(jié)數(shù),這將是有用的。在這種情況下,你可以用strtok,但是如果能寫(xiě)出一些類似于你能做的事情,那就太好了。stdin:int n, sum = 0;while (1 == scanf(" %d", &n)) {   sum += n;   // stdin is transparently advanced by scanf call}有什么簡(jiǎn)單的解決辦法我忘了嗎?
查看完整描述

1 回答

?
桃花長(zhǎng)相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

查找%n轉(zhuǎn)換說(shuō)明符sscanf()還有家人。它給了你所需要的信息。

#include <stdio.h>int main(void){
    char line[] = "100 185 400 11 1000";
    char *data = line;
    int offset;
    int n;
    int sum = 0;

    while (sscanf(data, " %d%n", &n, &offset) == 1)
    {
        sum += n;
        data += offset;
        printf("read: %5d; sum = %5d; offset = %5d\n", n, sum, offset);
    }

    printf("sum = %d\n", sum);
    return 0;}

將“l(fā)ine”改為“data”,因?yàn)椴荒茉黾訑?shù)組的名稱。


查看完整回答
反對(duì) 回復(fù) 2019-06-16
  • 1 回答
  • 0 關(guān)注
  • 535 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)