scanf(是/否) - 不起作用+弃用错误scanf,fopen等。 [英] scanf (yes/no) - doesn't work + deprecation errors scanf, fopen etc.
问题描述
考虑:
------------
char stringinput [ 64]
..bla。喇嘛。 bla。
do
{
printf(" Write to result.txt(y / n)?) ;
scanf("%s",stringinput);
}
while(writechar!=''y''||! =''n'');
编译器投诉。它说:错误C2059:语法错误:''!=''
另一个问题是MS VS 2005一直在抱怨弃用
命令,例如:
1.警告C4996:''fscanf''被宣布弃用.......:请参阅
声明''fscanf'' - 消息:''这个函数或变量可能是
不安全。请考虑使用fscanf_s。要禁用弃用,请使用
_CRT_SECURE_NO_DEPRECATE。有关详细信息,请参阅在线帮助。''
2.警告C4996:''scanf''被声明已弃用:请参阅
''scanf''的声明...消息:''此函数或变量可能不安全。考虑使用scanf_s代替
。要禁用弃用,请使用...
3.警告C4996:''fopen''被声明为已弃用....:请参阅声明
of' 'fopen''消息:''此函数或变量可能不安全。考虑使用fopen_s代替
。要禁用弃用,请使用
_CRT_SECURE_NO_DEPRECATE。有关详细信息,请参阅在线帮助。''
如何解决这些问题?对不起,但我对C
编程不是很有经验。
Med venlig hilsen /祝好问候
Martin J?rgensen
-
------------------------------ ---------------------------------------------
Martin J?rgensen的主页 - http://www.martinjoergensen.dk < br>
推荐答案
Martin J?rgensen写道:
Martin J?rgensen wrote:
考虑:
------------
char stringinput [64]
.bla。喇嘛。 bla。
{/> printf(" Write to result.txt(y / n)?");
scanf("%s" ,stringinput);
}
while(writechar!=''y''||!=''n'');
这应该是:
而(writechar!=''y''|| writechar!=''n'');
编译器投诉。它说:错误C2059:语法错误:''!=''
另一个问题是MS VS 2005一直在抱怨弃用的命令,例如:
1.警告C4996:''fscanf''被声明已弃用.......:请参阅
声明''fscanf'' - 消息:''此函数或变量可能不安全。请考虑使用fscanf_s。要禁用弃用,请使用
_CRT_SECURE_NO_DEPRECATE。有关详细信息,请参阅在线帮助。''
2.警告C4996:''scanf''被声明已弃用:请参阅
''scanf''的声明...消息:''这函数或变量可能不安全。考虑使用scanf_s代替
。要禁用弃用,请使用...
3.警告C4996:''fopen''被声明为已弃用....:请参阅声明
''fopen''消息:''此功能或变量可能不安全。考虑使用fopen_s代替
。要禁用弃用,请使用
_CRT_SECURE_NO_DEPRECATE。有关详细信息,请参阅在线帮助。''
如何解决这些问题?对不起,但我对C />编程不是很有经验。
Med venlig hilsen /最好的问候
Martin J?rgensen
Hi,
Consider:
------------
char stringinput[64]
.bla. bla. bla.
do
{
printf("Write to result.txt (y/n)? ");
scanf("%s", stringinput);
}
while (writechar != ''y'' || != ''n''); This should be :
while (writechar != ''y'' || writechar != ''n'');
The compiler complaints. It says: error C2059: syntax error : ''!=''
Another problem is that MS VS 2005 keeps complaining about deprecated
commands such as:
1. warning C4996: ''fscanf'' was declared deprecated.......: see
declaration of ''fscanf'' - Message: ''This function or variable may be
unsafe. Consider using fscanf_s instead. To disable deprecation, use
_CRT_SECURE_NO_DEPRECATE. See online help for details.''
2. warning C4996: ''scanf'' was declared deprecated: see declaration of
''scanf''... Message: ''This function or variable may be unsafe. Consider
using scanf_s instead. To disable deprecation, use ...
3. warning C4996: ''fopen'' was declared deprecated.... : see declaration
of ''fopen'' Message: ''This function or variable may be unsafe. Consider
using fopen_s instead. To disable deprecation, use
_CRT_SECURE_NO_DEPRECATE. See online help for details.''
How do I fix these problems? Sorry, but I''m not very experienced with C
programming.
Med venlig hilsen / Best regards
Martin J?rgensen
Martin J?rgensen写道:
[...]
Martin J?rgensen wrote:
[...]
while(writechar!=''y'' ||!=''n'');
编译器投诉。它说:错误C2059:语法错误:''!=''
while (writechar != ''y'' || != ''n'');
The compiler complaints. It says: error C2059: syntax error : ''!=''
当然!如果_what_不等于''n''?
我认为你的意思是:
而(writechar!=''y' '&& writechar!=''n'');
也就是说,直到writechar为y或n。这是你的意思吗?
请记住,你需要&& forand,not not||用于或。否则,
语句将永远为真,因为它不能等于两者。
[...]
< br $> b $ b -
+ ------------------------- + ------ -------------- + ----------------------------- +
| Kenneth J. Brody | www.hvcomputer.com | |
| kenbrody / at\spamcop.net | www.fptech.com | #include< std_disclaimer.h> |
+ ------------------------- + -------------- ------ + ----------------------------- +
不要给我发电子邮件:< mailto:Th ************* @ gmail.com>
Of course! If _what_ is not equal to ''n''?
I assume you meant:
while (writechar != ''y'' && writechar != ''n'');
That is, until writechar is either ''y'' or ''n''. Is that what you meant?
Remember that you need "&&" for "and", not "||" for "or". Otherwise,
the statement will always be true, as it can''t be equal to both.
[...]
--
+-------------------------+--------------------+-----------------------------+
| Kenneth J. Brody | www.hvcomputer.com | |
| kenbrody/at\spamcop.net | www.fptech.com | #include <std_disclaimer.h> |
+-------------------------+--------------------+-----------------------------+
Don''t e-mail me at: <mailto:Th*************@gmail.com>
>
" Martin J?rgensen" <未********* @ spam.jay.net>在消息中写道
news:fq *********** @ news.tdc.dk ...
"Martin J?rgensen" <un*********@spam.jay.net> wrote in message
news:fq***********@news.tdc.dk...
------------
char stringinput [64]
.bla。喇嘛。 bla。
{/> printf(" Write to result.txt(y / n)?");
scanf("%s" ,stringinput);
}
while(writechar!=''y''||!=''n'');
什么是writechar?可信的类型char。
片段!=''n''是||之后的非法语法运营商。
你不能说a不是b或不是c,你必须说
a不是b或a不是c
或者,更好的是,
(a不是b)或(a不是c)"
此外,这里的逻辑可能不是你想要的,因为
(writechar!=''y'')|| (writechar!=''n'')
总是如此。你可能想和&& instread of ||
< snip>> Med venlig hilsen /最好的问候
Martin J?rgensen
-
---------------------- -------------------------------------------------- ---
Martin J?rgensen的家 - http://www.martinjoergensen.dk
-
Fred L. Kleinschmidt
波音助理技术研究员
技术架构师,软件重用项目
--
Fred L. Kleinschmidt
Boeing Associate Technical Fellow
Technical Architect, Software Reuse Project
这篇关于scanf(是/否) - 不起作用+弃用错误scanf,fopen等。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!