Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用scanf_s时得到4,但使用fgets()时得到1? #包括“stdafx.h” #包括 #包括 void main() { chars[200]; int计数=0,i; printf(“输入字符串\n”); //scanf_s(“%[^\n]s”,s,sizeof(s)); fgets(s、sizeof*(s)、标准DIN); 对于(i=0;s[i]!='\0';i++) { 如果(s[i]='') 计数++; } printf(“给定字符串中的字数为:%d\n”,计数+1); getchar(); }_C++_Scanf_Fgets_Word - Fatal编程技术网

C++ 使用scanf_s时得到4,但使用fgets()时得到1? #包括“stdafx.h” #包括 #包括 void main() { chars[200]; int计数=0,i; printf(“输入字符串\n”); //scanf_s(“%[^\n]s”,s,sizeof(s)); fgets(s、sizeof*(s)、标准DIN); 对于(i=0;s[i]!='\0';i++) { 如果(s[i]='') 计数++; } printf(“给定字符串中的字数为:%d\n”,计数+1); getchar(); }

C++ 使用scanf_s时得到4,但使用fgets()时得到1? #包括“stdafx.h” #包括 #包括 void main() { chars[200]; int计数=0,i; printf(“输入字符串\n”); //scanf_s(“%[^\n]s”,s,sizeof(s)); fgets(s、sizeof*(s)、标准DIN); 对于(i=0;s[i]!='\0';i++) { 如果(s[i]='') 计数++; } printf(“给定字符串中的字数为:%d\n”,计数+1); getchar(); },c++,scanf,fgets,word,C++,Scanf,Fgets,Word,fgets(s,sizeof*(s),stdin)--是错误的。它应该是sizeof(s) *(s)是字符(数组的第一个元素),而s是数组。因为单个字符的大小为1,所以得到了1。为什么一个函数有sizeof(s),而另一个函数有sizeof*(s)?这是一个打字错误!Sorry我将sizeof*(s)更改为sizeof(s)后获得了正确的输出。谢谢你。。。现在您知道,sizeof运算符在应用于表达式时避免使用括号。(无论如何都应该避免将其应用于类型。) #include "stdafx.h" #

fgets(s,sizeof*(s),stdin)--是错误的。它应该是
sizeof(s)


*(s)是字符(数组的第一个元素),而s是数组。因为单个字符的大小为1,所以得到了1。

为什么一个函数有
sizeof(s)
,而另一个函数有
sizeof*(s)
?这是一个打字错误!Sorry我将sizeof*(s)更改为sizeof(s)后获得了正确的输出。谢谢你。。。现在您知道,sizeof运算符在应用于表达式时避免使用括号。(无论如何都应该避免将其应用于类型。)
#include "stdafx.h"
#include <stdio.h>
#include <string.h>

void main()
{
    char s[200];
    int count = 0, i;

    printf("enter the string\n");
    //scanf_s("%[^\n]s", s, sizeof(s));
    fgets(s, sizeof*(s), stdin);
    for (i = 0;s[i] != '\0';i++)
    {
        if (s[i] == ' ')
        count++;
    }
    printf("number of words in given string are: %d\n", count + 1);
    getchar();
}