C语言如何求一个二维数组有几行,还有为什么会提示gets()是一个未定义的标识符?

C语言如何求一个二维数组有几行,还有为什么会提示gets()是一个未定义的标识符?,第1张

C语言中求一个二维数组有几行的方法如下:
假设有定义int nums[10][20];
二维数组行数可以用sizeof计算:
rows = sizeof(nums)/sizeof(nums[0]);
第二个问题,为什么gets会提示未定义标识,有两种可能:
一、编译器支持gets库函数,但是你没有包含头文件#include<stdioh>;
二、编译器本身不支持gets库函数,因为gets函数是一个不安全函数,容易导致数组越界,所以很多编译器都不再有这个库函数了。取而代之的是gets_s或者fgets这类相对安全的函数,可以试试。

1点击菜单栏中的项目,然后点击属性。也可以在在右侧资源窗口中右键该项目,点击属性。2然后点击C/C++,选择优化3然后选择优化中的已禁用(/Od),确定4现在再回去调试,之前显示未定义标识符的问题vs2019未定义标识符gets故障原因:在VS2015中,stdioh头文件中已经不存在gets()函数定义,而被更安全的get_s()函数和fgets()函数所替代。故直接用gets()会出现未定义的错误

 #include<iostream>#include<cstdio>using namespace std;int main(){   char str1[100],str2[100];   cout<<"input str1:";   gets(str1);   cout<<"input str2:";   gets(str2);cout<<"str1="<<str1<<"\n"<<"str2="<<str2<<endl;return 0;}

在C++中加上cstdio 即可!

欢迎采纳!

cin 输入字符串时,以输入空格作为字符串输入结束的标志!,所以造成了你的这种情况!

s_gets 是函数,要查看 函数定义,才能知道 2个参数是什么类型,函数功能和参数意义。
假定 s_gets 类似 gets_s(),
函数原型是 char gets_s( char str, size_t n );
那么 flower 可能是 char flower[80]; size 可能是 int size=80;
函数功能是 从键盘读入一行字符串,存入flower,字符串长度不超过 size 数值。

gets就是接受一个字符串;
比如说你先定义了一个字符型的数组str只要在程序中写入:gets(str);在运行程序时就可以输入一个字符串并存入str数组中!!
我刚学c!感觉还行一起加油↖(^ω^)↗

vs2019未定义标识符gets故障原因:在VS2015中,stdioh头文件中已经不存在gets()函数定义,而被更安全的get_s()函数和fgets()函数所替代。故直接用gets()会出现未定义的错误。

微软将 Visual J++ 改版为 Visual J#,但至 Visual Studio 2008 时取消支持 Visual J#;而 Visual Studio 2010 时,并入支持新语言 Visual F#。Visual Studio 2010 原生支持:Visual Basic、Visual C#、Visual C++、Visual F#四种程序语言。

C语言:

标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。

不能把C语言关键字作为用户标识符,例如if,for,while等。

标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。

标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。

1gets(字符数组) 怎样得到函数值

这个问题没看懂,gets配合字符数组是输入用的呀,和函数值有什么关系?

如果你要用gets输入一个字符数组,可以:

2怎样得到字符数组的起始地址

数组名代表数组的起始地址,用gets输入字符数组后,用取地址符输出地址,如下:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13400344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存