scanf(是/否) - 不起作用+弃用错误scanf,fopen等。 [英] scanf (yes/no) - doesn't work + deprecation errors scanf, fopen etc.

查看:470
本文介绍了scanf(是/否) - 不起作用+弃用错误scanf,fopen等。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




考虑:

------------

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆