我今天一直在学习Delphi,我面临一个奇怪的错误:
type
TMatriz = array[1..10,1..10] of Integer;
var
i, j: Integer;
tablaDeMultiplicar: TMatriz;
begin
for i := 1 to 10 do
begin
for j := 1 to 10 do
begin
tablaDeMultiplicar[i-1,j-1] := i*j;
end;
end;
for i := 0 to 9 do
begin
for j := 0 to 9 do
begin
Write(tablaDeMultiplicar[i,j]:6);
end;
Writeln;
end;
Readln;
end.
Run Code Online (Sandbox Code Playgroud)
据我所知,这显示了乘法表.现在它显示一行1 2 ... 9 0,其余为0.
当我尝试将索引从1和10更改为0和9并按顺序调整行时,它什么也没有显示.我尝试了另外的东西,我只是这样工作:
我从这里得到的唯一结论是,你不能使用for的vars:/
我尝试使用具有不同数据类型的此代码变体在变量指示的时间内使用 C++ 关闭我的计算机。它不起作用。
system("shutdown -s -t %Charseconds");
system("shutdown -s -t %Intseconds");
system("shutdown -s -t %Stringseconds");
system("shutdown -t %Charseconds");
system("shutdown -t %Intseconds");
system("shutdown -t %Stringseconds");
Run Code Online (Sandbox Code Playgroud)
最小可重复性:
TurnOff(int seconds)
{
seconds = 10;
string str = to_string(seconds);
system("shutdown - s - t " + str);
}
Run Code Online (Sandbox Code Playgroud)
错误:没有合适的转换函数从“std::basic_string<char, std::char_traits<char>, std::allocator<char>>”到“const char *”
(int)b
和 和有什么区别int(b)
?
int(b)
和的值是否可能会有所不同(int)b
?如果不是,那么两者有什么区别?
有人可以澄清一下吗?
我的代码:
cout << "The expression is " << a + b << endl;
cout << "The expression is " << a + int(b) << endl;
cout << "The expression is " << a + (int)b << endl;
Run Code Online (Sandbox Code Playgroud) 我编写了一个代码片段,其中包含<windows.h>
,具有wWinMain()
带有普通参数的函数,并且它仅包含return 0
在函数体内。
现在,当我使用 编译它时g++ main.cpp -o main -municode; main
,它会突然打开我的“鼠标设置”窗口。为什么它会这样工作?我不明白。
#include <windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我原以为它什么也不做,但现在它打开了我的“鼠标设置”窗口 - 怎么办?
我正在编写与 C/C++ 中的引用相关的代码。我创建了一个指针并将其放入一个递增它的函数中。在函数中,我编写*ptr++
并尝试增加指针指向的整数的值。
#include <iostream>
using namespace std;
void increment(int *ptr)
{
int &ref = *ptr;
*ptr++; // gets ignored?
ref++;
}
int main()
{
int a = 5;
increment(&a);
cout << a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么我不能增加变量?我尝试使用 来增加它+=1
,它可以工作,但不能通过使用++
运算符?
我想从C++中的函数返回一个字符串,该函数是根据不同的字符串和整数创建的.我想在表单中创建一个字符串"ABCDFFFF00230000EFGH"
."ABCD"被定义为一个字符串in command[0]
,"0023"
是一个由其定义的整数answer
,并被"EFGH"
定义为一个字符串command[4]
.
我试过了:
return "{0}FFFF{1}0000{2}".format(command[0], answer, command[4]);
Run Code Online (Sandbox Code Playgroud)
但是这给出了一个错误:
成员引用基类型'const char [18]'不是结构或联合
我试过了:
return (command[0], "FFFF", answer, "0000", command[4]);
Run Code Online (Sandbox Code Playgroud)
但这只会返回值command[4]
.
我试过了:
return (command[0] + "FFFF", answer + "0000" + command[4]);
Run Code Online (Sandbox Code Playgroud)
我也用Python编写了这段代码:
return "{0}FFFF{1}0000{2}".format(command[0], answer, command[4])
Run Code Online (Sandbox Code Playgroud)
哪个给出了正确的答案.
int a = 0;
cout<<(a++, ++a, a++, ++a, a++)<<"\n";
Run Code Online (Sandbox Code Playgroud)
我怀疑上面的代码不是未定义的行为,我想验证一下。
我知道下面的代码有UB:
int a = 0;
cout << a++ << " " << ++a << " " << a++ << "\n";
Run Code Online (Sandbox Code Playgroud) 我正在学习C,对C++一无所知.使用C++的LazyFoo的SDL2教程做了一个我不理解的双冒号的东西,因此无法在C中跟随.
如果有帮助,这里是教程的链接:
http://lazyfoo.net/tutorials/SDL/04_key_presses/index.php
SDL_Surface *loadSurface( std::string path )
{
//Load image at specified path
SDL_Surface *loadedSurface = SDL_LoadBMP( path.c_str());
if( loadedSurface == NULL )
{
printf("Unable to load image %s! SDL Error: %s\n", path.c_str(), SDL_GetError());
}
return loadedSurface:
}
Run Code Online (Sandbox Code Playgroud)
除了函数参数和LoadBMP参数之外,这里的所有内容都对我有意义.我不知道是什么::
意思,我不知道path.c_str()
是指什么.
请问,有人可以用在C语言中有意义的方式解释它,或者建议只使用C语言的解决方法吗?
在编程中如何准确定义指令?
#include
是一个指令,并且using namespace std
假设我是正确的,它也是一个指令。
是什么让句子或单词成为指令?
我尝试从不同的来源阅读,但都无济于事。我是编程新手,我希望能够很好地理解指令。
在C++中,指令是否printf("%4.2f", num);
显示四位数字(包括两位小数)?