-3
我在做功课,当我以为我终于没有在Visual Studio中工作。 我有这样的代码,它在Dev C++中工作得非常好,但它不在Visual Studio中。你能解释我为什么以及如何解决它。只能在一个编译器中工作的代码
编辑:它在两个编译。在VS中,它的显示总是0,它应该为0和整数,整数这个数字。
#include <stdio.h>
#include <string.h>
#include <cstdlib>
#define czy_cyfra(c) ((c) > '0' && (c) < '9')
#define jaka_cyfra(c) ((c) - '0')
int czy_liczba_calkowita(char * a)
{
if (*a == '\0')
return -1;
do
{
if (!czy_cyfra(*a))
return -1;
} while (*++a != '\0');
return 0;
}
int jaka_liczba(char * a)
{
int liczba = 0;
do
{
liczba = liczba * 10 + jaka_cyfra(*a++);
} while (*a != '\0');
return liczba;
}
int main()
{
char a[255];
printf("Wprowadz lancuch\n");
scanf_s("%s", a);
printf("%u", czy_liczba_calkowita(a) == 0 ? jaka_liczba(a) : 0);
return 0;
system("pause");
}
它在做什么或不做它应该做什么或应该做什么? – nicomp
嗨,欢迎来到堆栈溢出!在发布有问题的代码时,您需要准确解释发生了什么问题。你的期望是什么?错误的确切文字是什么?它是运行时错误还是编译时错误?另外如果问题是关于C++的,那么不要将它标记为C.如果您将它编译为C++,那么它就是一个C++问题。最后,你通常需要产生一个最小的,完整的,可验证的例子,或者你的问题是脱离主题。请参阅帮助中心了解更多信息! –
什么是scanf_s()没有大小参数? – EOF