我试图让一个程序让用户输入一个单词或字符,存储它,然后打印它,直到用户再次键入它,退出程序.我的代码看起来像这样:
#include <stdio.h>
int main()
{
char input[40];
char check[40];
int i=0;
printf("Hello!\nPlease enter a word or character:\n");
gets(input);
printf("I will now repeat this until you type it back to me.\n");
while (check != input)
{
printf("%s\n", input);
gets(check);
}
printf("Good bye!");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是我不断打印输入字符串,即使用户输入(检查)与原始(输入)匹配.我比较错误吗?
我目前有一个名为 getResult 的方法,它返回 const char* 现在我正在做这样的事情
if(getResult=="Something")
{
...
}
Run Code Online (Sandbox Code Playgroud)
然而,这种类型的比较似乎不起作用。“Something” 不也是一个 const char 指针吗?或者在这种情况下是比较地址?
我有以下代码;
#include <stdio.h>
#define MAXLINE 2600
char words[4][MAXLINE];
int i;
int main(){
printf("Enter menu option: ");
scanf("%s", words[i]);
printf ("\n %s was entered!", words[i]);
if (words[i]=="help"){
printf("\nHelp was requested");
}
else
{
printf("\nCommand not recognized!");
}
}
Run Code Online (Sandbox Code Playgroud)
if语句中的数组求值不起作用.我显然做错了什么.有人可以向我解释一下吗?
首先,我不是要求任何人为我编写程序或为我做作业......我有一个错误,我无法弄清楚是什么导致它,以及在哪里寻找解决它.
所以我试图创建一个程序,它将从命令行获取命令和输入文件,并根据命令选择执行以下几个函数之一:输入文件的行,计算单词输入文件,或检查输入文件的回文,然后将回文(如果有的话)与字典文件进行比较.
这是代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
void usage(char *prog_name) //usage file if input format is wrong
{
printf("Usage: %s, <-h>|<-l>|<-w>|<-p>, <filename>\n", prog_name);
exit(0);
}
void help(char *prog_name, char *filename) //help file for -h option
{
printf("Welcome to the help file\n");
printf("For number of lines, enter: <%s>, <-l>, <%s>.\n", prog_name, filename);
printf("For number of words, enter: <%s>, <-w>, <%s>.\n", prog_name, filename);
printf("To list the palindromes in alphabetical order, print the …Run Code Online (Sandbox Code Playgroud) 基本问题在这里.我正在用g ++编译这个程序并使用单个-r参数(./a.out -r)运行它,但是它不输出下面指定的cout语句.这段代码有什么问题吗?
#include <string>
using namespace std;
int main(int argc, char* argv[]) {
if (argv[1] == "-r" ) {
cout << "First arg is -r" << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我在比较C中的两个字符串时遇到问题,看它们是否相等.
switch(i) {
case 1:
printf("Got in case 1. TextA=%s word=%s \n",TextA,word);
if(TextA == word) {
SubTypeOption = 1;
printf("SubTypeOptioon = %d",SubTypeOption);
}
Run Code Online (Sandbox Code Playgroud)
在我的输出中,我得到"得到的情况1. TextA = SupTypeA字= SupTypeA SubTypeOption = 0"//所以它没有被改变
我有一台服务器计算图像的散列并将图像和散列发送到客户端.我让客户端计算它接收的图像的哈希值.这是基本设置:
服务器
unsigned char sum[MD5_DIGEST_LENGTH];
md5sum(tdata, sum);
w = write(newsockfd,sum,MD5_DIGEST_LENGTH);
Run Code Online (Sandbox Code Playgroud)
客户
unsigned char ssum[MD5_DIGEST_LENGTH];
w = read(sockfd,ssum,MD5_DIGEST_LENGTH);
unsigned char sum[MD5_DIGEST_LENGTH];
md5sum(imgpath, sum);
int j;
for (j = 0; j < MD5_DIGEST_LENGTH; j++)
printf("%02x", ssum[j]);
printf("\n");
printf("CLIENT CHECKSUM: ", sum);
for (j = 0; j < MD5_DIGEST_LENGTH; j++)
printf("%02x", sum[j]);
printf("\n");
Run Code Online (Sandbox Code Playgroud)
输出完全相同,但如何使用if语句检查它们的相等性?如果我做:
if (sum == ssum)
Run Code Online (Sandbox Code Playgroud)
它总是评估为假.
C得到一个小问题.限制自己使用简单的C(即操作系统指令),两个字符串似乎不一样.这是我的代码:
char inputData[256];
int rid;
rid = read(0,inputData,256);
// Strip input
char command[rid];
int i;
for (i = 0; i<=rid-2; i++) {
command[i] = inputData[i];
}
command[rid-1] = '\0';
if (command == "exit") {
write(1,"exit",sizeof("exit"));
}
Run Code Online (Sandbox Code Playgroud)
现在,如果用户在查询时进入"退出"并且点击进入,则检测到"退出"的if永远不会运行.有任何想法吗?
谢谢,
编辑:我在去的时候提交git,所以当前的版本可以在github.com/samheather/octo-os找到.这显然不是完整的代码,但它证明了这个问题.
我试图用我的代码解析我的控制台应用程序中的运行参数:
int _tmain(int argc, _TCHAR* argv[])
{
if(argv[1] == _T("arg1")) cout<<"Argument1 was passed";
_getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的代码不起作用.我的意思是,它运行,但控制台是空的.我正在使用Use Unicode Character SetVisual Studio 2012中的选项进行编译(在Windows 7上).我的错在哪里?!