我需要编写一个程序来扫描文本文件并检索文件中的所有IP地址(格式为256.256.256.256).
我想从文件中读取文本.例如:HHEEHEHHEEHHHEEEHHHHEHEHHEHEEEEEEHHHHEEE
我想计算每第5个符号有多少"E"?
我创建了这个程序:
#include <iostream>
#include <fstream>
using namespace std;
int main () {
fstream file;
file.open("test.bin", ios::in | ios::out | ios::binary);
if(!file.is_open())
{
return -1;
}
int n = 5;
int x;
file.write(reinterpret_cast<char*>(&n), sizeof(n));
file.read(reinterpret_cast<char*>(&x), sizeof(x));
std::cout<<x;
file.close();
std::cin.ignore();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
应该将整数"n"写入.bin文件"test.bin",然后将数据从"test.bin"读入整数"x",然后在屏幕上显示"x".
当我运行程序时,它不显示5,而是显示-842150451.为什么会发生这种情况,我该如何解决?
我需要根据特定事件将一些系统日志数据(通常一次不超过100个字符)写入日志文件.但是这个日志文件的大小很小(比如大约4KB),当文件大小达到极限时我需要回滚日志.在环绕时,我需要保留最新的信息,然后在写入文件时按时间顺序显示它.做这个的最好方式是什么?我想避免复制文件来执行此操作.
将属性添加到海量XML文件的根元素的最快方法是什么?这些文件太大而无法读入内存,我希望避免尽可能多的I/O惩罚.
我正在尝试编写一个 C 函数,该函数从文件中读取第一行文本,然后使用fseek()和ftell()来获取文件其余部分的大小(文件减去第一行)。
我的想法是用一秒钟的时间FILE *fp1来获取原始文件的位置FILE *fp,并用 发送fp1到文件的末尾fseek(),这样我就不必移动原始文件fp并失去其位置。
这是我的代码。编译器告诉我不能分配fp1给fp,因为fp1is aFILE*和fpis a struct FILE*。
我可以通过这种方式实现我想要做的事情吗?
FILE *fp, fp1;
fp = fopen(filename, "r");
if (!fp)
return 0;
fscanf(fp, "%1d", m); //Lines 15-18 read the first line of the file
fscanf(fp, "%*1c");
fscanf(fp, "%1d", n);
fscanf(fp, "%*1c");
fp1 = fp; //<---------- This is my problem.
//how do I set …Run Code Online (Sandbox Code Playgroud) 我注意到,在Python中写入文件时,一旦文件关闭,内容就会写入文件中。
例如:
with open('test.txt','w') as ffile:
ffile.write("testing")
time.sleep(20)
Run Code Online (Sandbox Code Playgroud)
在此示例中“等待 20 秒后将写入“ testing ”。
这是如何以及为何发生的?为什么不同时写入文件呢?
我正在尝试将一个包含数字数组的简单文本文件加载到 Python 中。MWE 是
import numpy as np
BASE_FOLDER = 'C:\\path\\'
BASE_NAME = 'DATA.txt'
fname = BASE_FOLDER + BASE_NAME
data = np.loadtxt(fname)
Run Code Online (Sandbox Code Playgroud)
但是,这在运行时会出现错误:
OSError: C:\path\DATA.txt not found.
Run Code Online (Sandbox Code Playgroud)
我使用的是 VSCode,因此在调试窗口中,可以单击路径链接。当然,如果我单击它,文件会正常打开,所以这告诉我路径是正确的。
另外,如果我这样做print(fname),VSCode 也会给我一个有效的路径。
我有什么遗漏的吗?
根据您的(对将来参考非常有帮助)评论,我使用os模块和原始字符串更改了我的代码:
BASE_FOLDER = r'C:\path_to_folder'
BASE_NAME = r'filename_DATA.txt'
fname = os.path.join(BASE_FOLDER, BASE_NAME)
Run Code Online (Sandbox Code Playgroud)
结果还是报错。
我用另一个文件再次尝试。非常基本的路径和文件名
BASE_FOLDER = r'Z:\Data\Enzo\Waste_Code'
BASE_NAME = r'run3b.txt'
Run Code Online (Sandbox Code Playgroud)
我再次遇到同样的错误。如果我尝试另一种方法,
os.chdir(BASE_FOLDER)
a = os.listdir()
Run Code Online (Sandbox Code Playgroud)
然后选择正确的文件,
fname = a[1]
Run Code Online (Sandbox Code Playgroud)
当我尝试导入它时仍然收到错误。即使我直接从 检索它listdir。
>> os.path.isfile(a[1])
False
Run Code Online (Sandbox Code Playgroud) 我想使用循环将元素存储在 csv 文件中,例如,
for i in range(0,10):
#I want to append each i values in new rows of that csv file.
Run Code Online (Sandbox Code Playgroud)
输出的最终 csv 文件看起来像,
0
1
2
3
4
5
7
8
9
Run Code Online (Sandbox Code Playgroud)
如何高效地做到这一点?
我最近研究了 C 中的文件和输入/输出,很快发现 C 使用一种typedefed 结构FILE,通常表示为指向结构的指针。
该结构包含有关输入和输出的数据,因此操作系统和内核的较低级别部分可以轻松管理系统上的输入和输出,例如输入数据的大小、数据类型等。基本上,它是有目的地抽象
的因为它的工作方式非常低级。
我还知道FILE* xC 程序员通常使用类似的东西来表示输入和输出流。C 还允许FILE常用来指向文件。
为什么C允许程序员使用CFILE来表示文件以及输入/输出流?对我来说,这听起来非常令人困惑,而且这个关键字的字面意思FILE是这样FILE的,我认为它经常会让新程序员感到困惑,认为它仅用于指向文件。
那么为什么FILE同时用于文件和输入/输出呢?