簡體   English   中英

(C/C++) fscanf_s Missing Integer Arguments 從 txt 文件中讀取字符到數組時出錯

[英](C/C++) fscanf_s Missing Integer Arguments error When Reading in Chars to Array from txt file

第一篇文章,將盡我所能遵循指導方針並進行適當的設置。 如果需要任何東西,請告訴我!

VS 2019 中的錯誤是“C6064: Missing integer 參數到 'fscanf' 對應於轉換規范 '2'。” 下面的代碼在我的代碼中斷的部分給出。 到目前為止,rest 沒有問題並且可以正確編譯。 出錯的行是 fscanf。

完整代碼: https://pastebin.com/DCgEa64g (請原諒任何缺少的變量,它們已被處理!)

fp = fopen("codefile.txt", "r");
if (fp == NULL)
{
    printf("could not open codefile.txt\n");
    return 1;
}

i = 0;
while (!feof(fp))
{

    fscanf(fp, "%c", &code[i]);
    i++;
}

我發布的這一部分是我掃描一個文件 codefile.txt,並將其中的每個字符保存到一個字符串數組中,然后將該數組與“加密消息”進行比較以獲得答案。 該代碼編譯了正確的答案,但我無法將此錯誤傳遞給 go 。 出現的另一條消息是“'fscanf':沒有足夠的 arguments 為格式字符串傳遞”但我假設字符串數組中的字符只需要 %c?

這也將 codefile.txt 中的每個元素單獨放入代碼數組中,這是預期的。 我完成了這項任務的 rest,所以我根本不要求有人為我做任何其他事情。 我很樂意發布任何其他需要的代碼,目標是讀取帶有數字的單獨消息文件,將它們放入數組中。 解擾並與 codefile.txt 字符串進行比較並得到結果,我完成了 95% 的工作,需要一些幫助:任何澄清,請問! 明天晚上交這個:)

您的實際代碼(在鏈接中,而不是在您的問題中)使用fscanf_s() ,其文檔說:

更安全的函數(具有 _s 后綴)與其他版本之間的主要區別在於,更安全的函數需要將每個 c、C、s、S 和 [ 類型字段作為參數傳遞的字符大小緊跟在變量之后。 有關詳細信息,請參閱 scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l 和 scanf 寬度規范。

您的錯誤在於未能提供額外的尺寸參數。

謝謝約翰·茲溫克; 在專門使用 fscanf_s 時,我最終通過在參數中添加 SIZE 來實現它。 答案如下所示:

    while (!feof(fp))
{
    fscanf_s(fp, "%c", &code[i], SIZE); //SIZE was added here!
    i++;
}

謝謝您的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM