标签: fwrite

使用fread/fwrite作为STL字符串.这是对的吗?

我有一个包含字符串的结构.像这样的东西:

struct Chunk { int a; string b; int c; };

所以,我想,我不能使用fread和fwrite函数从文件中读写这个结构.因为字符串可能会保留不同的内存容 但这样的代码工作正常.

Chunk var;

fwrite(&var, sizeof(Chunk), 1, file);

fread(&var, sizeof(Chunk), 1, file);

它真的有些问题吗?

c++ string fwrite fread

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

替换文件中的一行而不重写整个文件(在 PHP 中)

假设我有一个中等大小的文本文件(~850kb,10,000+ 行)

我想替换分布在文件中的特定行(或几行)。

当前执行此操作的方法包括重写整个文件。我当前使用的方法是逐行读取整个文件,写入 .tmp 文件,完成后,我将 tmp 文件 rename() 为原始源文件。

它有效,但速度很慢。当然,随着文件的增长,执行时间也会增加。

是否有另一种方法(使用 PHP)来完成工作,而不必每次需要替换或删除一两行时都重写整个文件?

谢谢!我环顾四周,在stackoverflow上找不到答案。

php fopen fwrite fread

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

为fread fwrite设置utf-8编码

嗨,我使用此代码读取和写入文件中的文本.

$d = fopen("chat.txt", "r");
 $content=fread($d,filesize('chat.txt'));
 $bn=explode('||',$content);
 foreach($bn as $bn)
 echo $bn.'<br>';
Run Code Online (Sandbox Code Playgroud)

$d = fopen("chat.txt", "a");
 $c=$_GET['c'];
 if($c=='') die();
 fwrite($d,$c.'||');
 fclose($d);
Run Code Online (Sandbox Code Playgroud)

但是= =只有= utf-8字符显示"?" 要么 "[]" .我的编码Utf-8没有BOM,我使用它

header('Content-type: text/html; charset=UTF-8');
Run Code Online (Sandbox Code Playgroud)

还有这个 :

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)

我在php.ini中的defult编码是utf-8但是还显示?.我在文件中看到chat.txt文件和字符,但是在文件中保存时和在页面中显示"?"时 而不是正确的.

php fopen fwrite fread

4
推荐指数
2
解决办法
5万
查看次数

超时 fwrite 调用以防止其阻塞

有没有一种方法可以防止 fwrite 阻塞,比如使用超时?

场景是这样的:我需要在网络上进行 fwrite 调用(因为我主要是重用代码,所以我需要坚持下去)。但是,如果我拔掉网线,fwrite 会阻塞。有解决方法吗?任何帮助/建议将不胜感激。

c c++ fwrite blocking

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

使php中的新行写入文件

我试过这个,但不会工作

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
$txt = "Minnie Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);
?> 
Run Code Online (Sandbox Code Playgroud)

这是它在我的 newfile.txt 中的显示方式:

Mickey MouseMinnie Mouse`
Run Code Online (Sandbox Code Playgroud)

但我想要这样:

Mickey Mouse
Minnie Mouse
Run Code Online (Sandbox Code Playgroud)

php fwrite

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

C 函数 fwrite() 不写入文件

我正在尝试将结构写入tempGroupFileinto GroupFilefwrite()写入时返回1,但实际上文件中没有写入任何数据GroupFile。函数printRec()在屏幕上打印出结构。data是结构变量。这些操作后文件GroupFile为空。代码:

GWTemp = fopen(tempGroupFile, "rb");
GW = fopen(GroupFile, "wb"); 
if((GW == NULL) || (GWTemp == NULL))
{
    puts("Failed to open file.");
    fflush(stdin);
    getchar();
    return 0;
}
while(fread(&data, sizeof data, 1, GWTemp))
{
    if(fwrite(&data, sizeof data, 1, GW))
    {
        printRec(data);
    }
}
Run Code Online (Sandbox Code Playgroud)

c io file-io fwrite

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

用 PHP 编写一个新文件并附加一个文件而不删除内容

如何在不删除文件的所有其他内容的情况下在 php 中向文件中写入新行?

<?php
if(isset($_POST['songName'])){

        $newLine = "\n";
        $songName = $_POST['songName'];
        $filename = fopen('song_name.txt', "wb");
        fwrite($filename, $songName.$newLine);
        fclose($filename);
    };

?>
Run Code Online (Sandbox Code Playgroud)

这是文件的样子 当前视图

这就是理想视图的样子

php fwrite

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

r 将文本和数据框写入文件

将一些文本后跟数据框写入文件的最佳方法是什么?文本是通过将变量粘贴到字符串中来创建的。

示例所需的输出:

Here is some text.
This line has a variable: Hello World
Data frame below the line
=================
ID,val1,val2
1,2,3
2,4,6
3,6,9
4,8,12
5,10,15
6,12,18
7,14,21
8,16,24
9,18,27
10,20,30
Run Code Online (Sandbox Code Playgroud)

我可以用初始文本创建一个字符串:

myvar <- "Hello World"
out_string <- paste0("Here is some text.\n",
                     "This line has a variable: ", myvar, "\n",
                     "Data frame below the line\n",
                     "=================\n")
cat(out_string)
Run Code Online (Sandbox Code Playgroud)

我可以将数据帧写入文件:

library(data.table)

mydf <- data.frame(ID = 1:10, val1 = 1:10*2, val2 = 1:10*3)

fwrite(x = mydf,
   file = "path/file.txt",
   sep = ",",
   col.names=T)
Run Code Online (Sandbox Code Playgroud)

但我不确定如何最好地将这两者结合起来。 …

string r fwrite dataframe

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

Python写入后文件开头出现奇怪字符

我想通过 python 脚本自动替换很多无聊的 C# 代码。我读取文件的所有行,转换它们,截断整个文件,写入新字符串并关闭它。

f = open(file, 'r+')
text = f.readlines()
# some changes
f.truncate(0)
for line in text:
    f.write(line)
f.close()
Run Code Online (Sandbox Code Playgroud)

我所有的修改都写下来了。但文件开头出现了一些奇怪的字符。我不知道如何避免它们。即使我打开encoding='utf-8-sig'它也没有帮助。

我尝试截断除第一行之外的整个文件,如下所示:

import sys
f.truncate(sys.getsizeof(text[0]))
for index in range(1, len(text), 1):
    f.write(text[index])
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,不止第一行正在写入,而不仅仅是第一行。

编辑 我尝试过这个:

f.truncate(len(text[0]))
for index in range(1, len(text), 1):
    f.write(text[index])
Run Code Online (Sandbox Code Playgroud)

第一行写的是正确的,但下一行有同样的问题。所以我认为这些字符来自文件末尾,我尝试在它们后面写入。

python windows file fwrite

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

为什么C用5个字节来写/写数字10,而用4个字节来写9或11?

Windows 上的 GCC

#include <stdio.h>
#include <stdlib.h>

struct test {
    int n1;
    int n2;
};

int main() {
    FILE *f;
    
    f = fopen("test.dat", "w");
    struct test test1 = {10, 10};
    fwrite(&test1, sizeof(struct test), 1, f);
    fclose(f);
    
    struct test test2;
    f = fopen("test.dat", "r");
    while(fread(&test2, sizeof(struct test), 1, f))
        printf("n1=%d n2=%d\n", test2.n1, test2.n2);
    fclose(f);
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我将 test1 设置为,10,10则 fwrite 会将10 个字节写入文件:0D 0A 00 00 00 0D 0A 00 00 00

(每个4字节int将在其前面填充0D回车符)

如果我将 test1 设置为, …

c struct fwrite

4
推荐指数
2
解决办法
400
查看次数

标签 统计

fwrite ×10

php ×4

c ×3

fread ×3

c++ ×2

fopen ×2

string ×2

blocking ×1

dataframe ×1

file ×1

file-io ×1

io ×1

python ×1

r ×1

struct ×1

windows ×1