清泛IT社区

标题: 我想运行程序如下对比两个字符串长度然后输出长度较长的一个运行不了 [打印本页]

作者: 泡面    时间: 2016-01-12 10:44
标题: 我想运行程序如下对比两个字符串长度然后输出长度较长的一个运行不了
#include<iostream>
#include<string.h>
#include<stdio.h>
int main(void)
{
        int c,d;
        char*a;
        char*b;
        scanf("%s,%s",&a,&b);
    c=strlen(a);
        d=strlen(b);
        if (c>d)
        printf("%s",a);
        if (d<c)
        printf("%s",b);
        return 0;
}
求指点

作者: 清泛网    时间: 2016-01-12 11:27
报错:error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

说明vs安全级别设置较高,必须使用scanf_s安全函数,或调低安全级别(不推荐)。
作者: 泡面    时间: 2016-01-12 11:29
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
1>C:\Users\Administrator\Desktop\新建文件夹\Win32Project1\Debug\Win32Project1.exe : fatal error LNK1120: 1 个无法解析的外部命令
作者: 清泛网    时间: 2016-01-12 11:41
泡面 发表于 2016-01-12 11:29
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRT ...

_WinMain是Win32程序的入口函数,而你提供的main是控制台程序的入口函数。
猜想你vs建立的是Win32工程,可以将它改为Console工程:
工程属性 -> 链接器 -> 所有选项 -> 子系统:
(, 下载次数: 6713)

作者: 泡面    时间: 2016-01-12 11:42
谢谢,问题解决,只是功能没达到是哪里错了
作者: 泡面    时间: 2016-01-12 11:43
错误的问题已经解决了,只是功能没有实现,求指点哪里错了
作者: 清泛网    时间: 2016-01-12 12:27
泡面 发表于 2016-01-12 11:43
错误的问题已经解决了,只是功能没有实现,求指点哪里错了

char a[256] = {0};
char b[256] = {0};
scanf_s("%s",&a, 256 - 1);
scanf_s("%s",&b, 256 - 1);

首先必须分配一块空间,而非单纯一个指针。
使用scanf_s一定要指定最大长度。
作者: 泡面    时间: 2016-01-12 12:36
{:good:}谢谢




欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3