我本周末正在建立一个名为Pirates Vs的小项目.忍者与 僵尸VS. 机器人;)
目的是学习我之前从未使用过的Cake的一些方面 - 例如用于翻译的__()函数.
我有一条消息,我想按照"%s谢谢你"的方式输出,其中%s将是'Zombies'.如果我使用普通的PHP,我想我会使用:
$string = 'Zombies';
printf('The %s thank you', $string);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用__()翻译功能时,我不知道如何使这项工作.
有人可以帮我吗?谢谢 :)
#include <stdio.h>
#define print_int(a) printf("%s : %d\n",#a,(a))
int main(void) {
int y = 10;
print_int(y);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我正在上课,并被要求解释为什么这很糟糕。所以我想字符串化#a是问题。它确实有效,那么为什么会有危险呢?
我正在调试PHP代码并发现以下内容:
$a = 111749392891;
printf('%f', $a);
111749392890.:00000
printf('%F', $a);
111749392890.:00000
printf('%F.2', $a)
111749392890.:00000.2
printf('%F0.2', $a);
111749392890.:000000.2
number_format($a, 2, '.','');
111749392891.00
Run Code Online (Sandbox Code Playgroud)
只有number_format()输出对我来说没问题.我错过了什么吗?我正在使用PHP 5.3.
我有循环问题,我不知道为什么但循环永远不会结束.
int main(int argc, char *argv[])
{
int j;
char s[2];
for(j=1;j<=3;j++)
{
sprintf(s,"s%d",j);
printf("%s", s);
}
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为循环应该在控制台中显示s1s2s3.
我们有以下代码片段:
char tab[2][3] = {'1', '2', '\0', '3', '4', '\0'};
printf("%s\n", tab);
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我们在通话中没有收到错误/警告我收到警告但没有错误,程序运行正常.它打印' printf.12'.
printf期待一个类型的参数char *,即指向char.所以,如果我声明char arr[3],那么arr是一个包含a的内存单元的地址char,所以如果我printf用它调用它会衰减指向char,即char *.
类似地,tab是包含3个字符的类型数组的存储器单元的地址,而存储器单元的地址包含char,因此tab将衰减char **,并且它应该是一个问题,因为printf期望a char *.
有人可以解释这个问题吗?
我得到的警告是:
a.c:6: warning: char format, different type arg (arg 2)
在awk有两个输出功能:print和printf.
awk完全不同?time命令行上的" ")?我正在尝试打印整个单词,而不仅仅是第一个字母.我可以通过循环来做到这一点,但我认为有更好的方法.我正在四处搜索并看到他们将%S更改为%c的答案,但我已经在使用%c,因为它是一个字符数组.
char* words[] = {"my", "word", "list"};
printf("The word: %c",*words[2]);
Results:
The word: l
Run Code Online (Sandbox Code Playgroud) 我试图制作一个程序,将10个数字作为输入,并使用C中的指针以相反的顺序输出它们.
#include<stdio.h>
#define N 10
int array[N]; //Global variable
int main(void) {
int j;
int i;
printf("Enter 10 numbers: ");
for (i=0;i<N;i++) {
scanf("%d",(array+(4*i))); //Works
}
for (j=N-1;j<0;j--) {
printf("%d",array[j]); //Doesn't print, using *(array+j*4) doesn't
//print also
}
printf("\n");
printf("%d\n",*(array)); //Works so scanf works
printf("%d\n",*(array+4)); //Works so scanf works
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试为两个for循环创建一个单独的函数,但它仍然不起作用.我想知道为什么这个for循环不打印但是它下面的两个printfs打印出来.
编辑:
我的新代码是
#include<stdio.h>
#define N 10
int array[N]; //Global variable
int main(void) {
int j;
int i;
printf("Enter 10 numbers: ");
for (i=0;i<N;i++) {
scanf("%d",(array+i)); //Works
} …Run Code Online (Sandbox Code Playgroud) 请解释输出.是什么%.#s在printf()意思?
#include<stdio.h>
#include <stdlib.h>
int main(int argc,char*argv[]){
char *A="HELLO";
printf("%.#s %.2s\n",A,A);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
#s HE
Run Code Online (Sandbox Code Playgroud) 我写了一个自定义打印功能.我的问题是我需要返回一个,const char*因为这必须在另一个函数中使用.我根本不知道如何管理......
anotherFunction (const char* text /*Here*/, unsigned __int32 value, unsigned __int64 bigVal);
我知道以下示例/ s不能正常工作.这就是我到目前为止所尝试过的.
const char* CatchMessage (const char *message, ...)
{
va_list args;
va_start (args, message);
/*?*/
va_end (args);
return message;
}
Run Code Online (Sandbox Code Playgroud)
我只是设法在cmd中获得正确的输出,但实际上我需要它作为返回值.
void CatchMessage (const char *message, ...)
{
va_list args;
va_start (args, message);
vfprintf (stdout, message, args);
va_end (args);
}
Run Code Online (Sandbox Code Playgroud)
呼叫:
CatchMessage ("Some Input %s and %d equals to %d", randString, randNumber, secRandNumber);
Run Code Online (Sandbox Code Playgroud)
应该返回:
"Some Input stuff and 12 equals to 6" …Run Code Online (Sandbox Code Playgroud)