我有一个程序X,它接收带有Windows \r\n ({CR}{LF})行结尾的文件.当提供带有unix文件结尾的文件时,程序会中断\n ({LF})
我想创建一个适配器,它将处理输入文件并提供一个带有Windows X行结尾的输出文件到程序X.
我试过了什么
StreamReaderStreamWriter临时文件代码:
public void ShouldConvertFile()
{
using (var reader =
new StreamReader(new FileStream(SampleFileName, FileMode.Open)))
{
if (File.Exists(SampleTemporaryFileName))
File.Delete(SampleTemporaryFileName);
using (var writer = new StreamWriter(
new FileStream(SampleTemporaryFileName, FileMode.Create)))
{
string line;
while ((line = reader.ReadLine()) != null)
writer.WriteLine(line);
}
}
if (File.Exists(SampleFileName))
File.Delete(SampleFileName);
File.Copy(SampleTemporaryFileName, SampleFileName);
File.Delete(SampleTemporaryFileName);
}
Run Code Online (Sandbox Code Playgroud)
有没有更快/更好/更清洁的方式我可以做到这一点?
我正在尝试从文本文件中读取几千个IPv4地址并将它们放入C++字符串数组中.这是我到目前为止所拥有的
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string fileName1,fileName2;
fileName1="file1Large.txt";
ifstream inData;
inData.open(fileName1);
string file1[10000];
int i=0;
while(inData)
{
inData>>file1[i];
i++;
}
cout<<"File1: "<<endl;
for(int z=0; z <= 10000; z++)
{
cout<<file1[z];
}
inData.close();
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到一个未处理的异常,我不确定是什么问题.我主要使用Java而不是很多C++,所以如果我遗漏了一些明显的东西,我会道歉.
我正在为uni编写一个实验室任务的程序,代码将使得相当明显的是什么,但是当它要求第一行时,即循环中的第一个1,并且插入一个字符串并按Enter键,它会自动直接跳到循环中的最后一个增量(5)任何想法?
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Scanner;
public class limmerickWriter {
public static void main(String[] args)throws Exception {
Scanner limScan = new Scanner(System.in); //scanner to read user input
System.out.println("please enter the name of the file");
String fileName;
fileName = limScan.next(); //filename for the text file
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fileName))); //declaring a new file writer
for (int i = 1; i <= 5; i++) //loop to get 5 seperate lines from the user
{
System.out.println("please enter …Run Code Online (Sandbox Code Playgroud) 问题说明了一切。我有一个指向的File对象/home/user/filename1。
如果我调用file.getAbsolutePath(),它将返回 /home/user/filename1
我的问题是-
谢谢
所以我真的需要帮助.我不确定的问题是创建一个名为smallest()的函数来打开一个名为datanums.txt的文件,并使每一行只显示最小的数字.
Datanums.txt文件:
6,3,5
4,4,8
3,7,2
1,8,9
9,0,6
Run Code Online (Sandbox Code Playgroud)
它应该显示什么:
3
4
2
1
0
Run Code Online (Sandbox Code Playgroud)
问题是我需要将txt文件的行格式化为(x,y,z).有人可以帮忙吗?
我的问题是:我如何定义x,y,z ???
我的代码:
def smallest(x, y, z):
with open('datanums.txt','r') as a:
a.split().format(x, y, z)
smallestNumber = sorted((x, y, z))[0]
return smallestNumber
print smallest(x, y, z)
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个程序,在用户定义的目录中找到下一个.exe文件,并为其写一个标志(对于计算机安全类).
它目前正在写0字节,我不知道为什么.
到目前为止,这是我的代码:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <Windows.h>
#include <fstream>
using namespace std;
typedef wchar_t wchar;
struct thePlague{
long int origBytes;
wchar_t flag[6];
};
void main() {
WIN32_FIND_DATA findFileData; //Windows structure that receives info about a found file or directory
HANDLE hFind = INVALID_HANDLE_VALUE; //Handle that holds whether or not a file was successfully found with FindNextFile
LARGE_INTEGER fileSize;
wchar szDir[MAX_PATH];
DWORD dwError = 0;
wchar directory[MAX_PATH];
wcout<<L"Please enter a directory: ";
wcin>>directory;
// Check that the input path …Run Code Online (Sandbox Code Playgroud) 假设我有一个名称文件,例如:
"erica","bosley","bob","david","janice"
Run Code Online (Sandbox Code Playgroud)
也就是说,每个名称周围都有引号,每个名称用逗号分隔,中间没有空格.
我想把这些读成一个字符串数组,但似乎无法找到ignore/get/getline /无论使用什么组合.我想这是一个常见的问题,但我正试图在文件I/O上做得更好而且还不太了解.这是一个基本版本,它只是将整个文件作为一个字符串读取(显然不是我想要的):
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
fstream iFile("names.txt", ios::in);
string names[5];
int index = 0;
while(iFile)
{
iFile >> names[index];
index++;
}
for(int i = 0; i < 5; i++)
{
cout << "names[" << i << "]: " << names[i] << endl;
}
Run Code Online (Sandbox Code Playgroud)
输出:
names[0]: "erica","bosley","bob","david","janice"
names[1]:
names[2]:
names[3]:
names[4]:
Run Code Online (Sandbox Code Playgroud)
另外,我理解为什么它全部被读作单个字符串,但为什么剩下的元素没有被垃圾填满?
要清楚,我希望输出看起来像:
names[0]: erica
names[1]: bosley
names[2]: bob
names[3]: david
names[4]: janice
Run Code Online (Sandbox Code Playgroud) 这样的代码:
int _tmain(int argc, _TCHAR* argv[])
{
int *test = new int[];
ifstream f("ofile.txt");
for (int i=0,v; i<10; i++)
{
f>>v;
test[i]=1;
cout<<"\nv = "<<v<<", i = "<<i<<endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译后导致此消息:

我想(如果我错了,请纠正我)这里有一些关于记忆的错误,但细节对我来说不得而知.如果我删除其中一个(文件读取或数组),它的工作原理.所以听到问题的解释会很棒.
如果我用C或C++编写程序,在Windows/CMD提示符中将非文本文件(.mp3,.avi等)从一个位置复制到另一个位置,我是否真的依赖Windows API来完成所有工作为了我?复制文本文件是一回事,我可以打开它并按字符或逐字符串复制字符.有人可以给我一个简短的纲要(如果你有参考链接,甚至更好.我只是问,因为我找不到任何合理的解释它.)关于非文本文件复制程序如何工作?
谢谢大家!
C中哪些文件读取器可以处理读取不一致的文件?有时文件是"字号",有时它只是"字".像这样.
bob 456
echo
cat
dog 1101
peacock 300
Run Code Online (Sandbox Code Playgroud)
这就是我用fscanf尝试过的.我很惊讶它的工作原理.我不认为fscanf喜欢不一致的文件.有什么我需要担心的吗?我知道如果你不小心,fscanf会有非常糟糕的副作用.
while (fscanf(pFile, "%s %d", nam, &val) !=EOF)
{
//my work
}
Run Code Online (Sandbox Code Playgroud)