小编Aco*_*orn的帖子

如果文件已经打开,fopen 是否返回 NULL 指针?

我假设如果文件已经打开则fopen返回NULL指针。但如果文件已经打开,它看起来fopen不会返回NULL"w"模式下。下面是我用来尝试这个的代码,我没有收到任何错误。我尝试过 mingw32 以及 TDM-GCC-64 编译器。如果我没记错的话,如果文件已经打开,C++ 会报错。

#include<stdio.h>

int main()
{
    FILE *fp1, *fp2;
    
    fp1 = fopen("file1.txt", "w");
    fp2 = fopen("file1.txt", "w");
    
    if(fp2 == NULL)
    {
        printf("Error in opening file\n");
        return(0);
    }
    
    // Edit: added following code to check the behavior if write operation
    // is performed simultaneously
    
    fputc('A', fp1);
    fputc('M', fp1);
    fputc('S', fp1);
    fputc('B', fp2);
    
    fclose(fp1);
    fclose(fp2);
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:增加了额外的代码来写一些数据都fp1fp2和看到的行为。如果执行,file1.txt包含数据BMS和似乎是正确的行为,fp1并 …

c file-handling mingw32

1
推荐指数
1
解决办法
2576
查看次数

如何提交 git 钩子?

我正在尝试添加pre-commit脚本。

该脚本有效,但 git 忽略了对文件的更改,似乎 git 忽略了我.git.gitignore.

例如:

# add a hook that runs hello world
echo "#\!/bin/sh \n echo 'hello world'" > .git/hooks/pre-commit

# make the hook runnable
chmod +x .git/hooks/pre-commit

# check changes
git status 

# > Your branch is up to date with 'origin/master'.
# > nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)

因此,我如何将钩子提交到存储库?

git

1
推荐指数
2
解决办法
1088
查看次数

Git:如果你在关闭前不提交会怎样?

我很惊讶我找不到关于分期/提交的性质的更彻底的解释,所以我问自己。我是 GitHub 的新手(并且没有在这台计算机上下载 Bash,所以我宁愿让人们回答)。

具体来说,假设您正在使用 GitBash 在项目目录中工作。您进行一些基本更改并保存。无需暂存或提交任何内容,即可关闭所有应用程序。您所做的更改会发生什么变化?它们会被抹去还是会留下变化?我想同样的问题适用于如果你提交了你的东西然后退出了。

“提交”是否存储在某个文件夹中?“暂存区”只是一个临时的 Bash 东西还是也有一个物理文件夹?

如果退出,是否必须重新提交更改?

谢谢您的帮助。

git git-commit git-bash

0
推荐指数
1
解决办法
552
查看次数

C - 这个答案的解释

int main(void)
{ 
    float w = 8.456;
    int b = 3;

    printf("%d", (int)(b * w));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

似乎无法理解如何做到这一点等于25,即使它int * float并显示为int,什么做int手段,printf行...是不是int由乘以float一个0

c

0
推荐指数
1
解决办法
137
查看次数

当数据类型为 unsigned char 时 scanf 的行为存在问题

所以我不知道为什么会观察到这种行为:

#include <stdio.h>

int main()
{
    unsigned char c;
    char d;
    scanf("%hhu", &d);
    printf("%c\n", d);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我没记错的话%hhu是为了unsigned char。如果我输入几乎任何字符,例如a, 或者b答案是什么都没有并d获取值0。但如果我输入97然后d打印该值a(因此 ASCII 会转换为字符)。当数据类型为 时,情况显然并非如此char。我可以直接输入字符并存储它。

也在这段代码中稍加修改

#include <stdio.h>

int main()
{
    unsigned char c;
    char d;
    int g;
    scanf("%hhu", &d);
    printf("%c\n", d);
    scanf("%d", &g);
    printf("%d is g\n", g);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我将第一个输入作为字符,例如wora那么它只会跳过第二个输入scanf,但如果输入是数字,那么它会正常工作。

c scanf unsigned-char

0
推荐指数
1
解决办法
605
查看次数

为什么我们不能为结构的成员设置默认值?

我们知道一个结构体可以声明为:

struct correct {
    int year;
    int *p; 
};
Run Code Online (Sandbox Code Playgroud)

但我们不能将其声明为:

struct wrong {
    int year = 2020;
    int *p; 
};
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

Q1-为什么 C 被设计为不允许为结构的成员设置默认值?允许它这样我们程序员以后不需要初始化它不是更方便吗?

Q2-对于正确的结构类型,yearp是否0都由 GCC初始化?

c

0
推荐指数
1
解决办法
81
查看次数

双跳问题

我真是一言不发。我一直坐在电脑前,试图弄清为什么它不起作用。我试图使播放器无法在空中跳跃。但是由于某种原因,玩家仍然可以跳两次,与此同时,如果玩家尝试第三次或第四次跳跃等。它不会和我的代码工作。但是,为什么我仍然能够跳一跳?我不知道这一点。感谢所有帮助。

#include "pch.h"
#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>

using namespace std;

int width = 800;
int height = 600;

int main()
{
    sf::RenderWindow window(sf::VideoMode(width, height), "In Development");
    window.setFramerateLimit(70);
    window.setVerticalSyncEnabled(true);

    sf::RectangleShape player;
    player.setSize(sf::Vector2f(50, 50));
    player.setFillColor(sf::Color::Cyan);
    player.setPosition(width / 2, 0);

    sf::Vector2f velocity(0, 0);
    float gravity = .1;

    bool jumping = true;

    sf::Event event;
    while (window.isOpen())
    {
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();

            if (event.type == sf::Event::KeyPressed)
            {
                if (event.key.code == sf::Keyboard::Space)
                {
                    if (jumping == false)
                    {
                        velocity.y = …
Run Code Online (Sandbox Code Playgroud)

c++ sfml

-2
推荐指数
1
解决办法
60
查看次数

标签 统计

c ×4

git ×2

c++ ×1

file-handling ×1

git-bash ×1

git-commit ×1

mingw32 ×1

scanf ×1

sfml ×1

unsigned-char ×1