本文将带您了解关于在C中读取文本文件时,如何阻止WindowsC库将“rn”转换为“n”?的新内容,同时我们还将为您解释c读取文本文件内容的相关知识,另外,我们还将为您提供关于domain-name-
本文将带您了解关于在C中读取文本文件时,如何阻止Windows C库将“ r n”转换为“ n”?的新内容,同时我们还将为您解释c读取文本文件内容的相关知识,另外,我们还将为您提供关于domain-name-system – 如何阻止Windows DNS服务器属性设置自行更改?、Java-通过在读取文本文件时覆盖而从文本文件中删除行、java中写入文件时换行符是用”/r/n”还是”/n”?、R:将“rmarkdown”转换为“html”文件的实用信息。
本文目录一览:- 在C中读取文本文件时,如何阻止Windows C库将“ r n”转换为“ n”?(c读取文本文件内容)
- domain-name-system – 如何阻止Windows DNS服务器属性设置自行更改?
- Java-通过在读取文本文件时覆盖而从文本文件中删除行
- java中写入文件时换行符是用”/r/n”还是”/n”?
- R:将“rmarkdown”转换为“html”文件
在C中读取文本文件时,如何阻止Windows C库将“ r n”转换为“ n”?(c读取文本文件内容)
我有一个正常的文本文件,以正常结束 r n。 但是,使用“打开”和“读取”时,Windows会将所有 r n转换为 n。 我知道这意味着我必须以二进制模式打开文件,但“打开”function不提供此选项,它只有只读,只写或读写。
这是代码:
int File_Size = ...; char* Buffer = (char*)malloc(File_Size); int Handle = open(File_Path,O_RDONLY); read(Handle,Buffer,File_Size); close(Handle);
如何查看一个字符是否等于一个新行
为什么回车在新行之前
sqlite如何在MSWindows上保存一个换行符?
HTML ::整洁的Windows换行问题
在Tcl中:分别将-eofchar设置为windows / unix
Linux操作系统。 将文件的内容设置为环境variables时如何保留行?
在Windows中打印到控制台时需要回车吗?
如何使用Linux邮件命令在电子邮件中插入新行?
Java代码意外地将“&#13”附加到行尾
在控制台上的Windows上打印回车
尝试使用O_RDONLY|O_BINARY 。
总结
以上是小编为你收集整理的在C中读取文本文件时,如何阻止Windows C库将“\ r \ n”转换为“\ n”?全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
domain-name-system – 如何阻止Windows DNS服务器属性设置自行更改?
其中一个DNS服务器有两个网络接口,它应该只监听它们的请求,否则我会在事件日志中收到错误.但是当右键单击一个DNS服务器并选择“属性”时,我可以在“接口”选项卡上看到“所有IP地址”已被选中.如果我将其更改为“仅以下IP地址:”并删除WAN广告,我会在几天后再次检查时发现它已被重新选中.
在其他DNS服务器的“属性”中,在“转发器”选项卡上,应该只有两个转发器地址.但是,路由器的地址不断出现.此路由器具有DNS服务器作为其转发器.除路由器本身之外,不应该使用路由器的DNS转发器用于DNS,但这肯定会导致循环.
如何在两台DNS服务器上获取这些属性?
解决方法
也许您的DNS服务器设置为使用DHCP作为其IP地址,并且它正在被更改.将其更改为静态IP寻址可能会解决问题.
也许它被设置为静态IP寻址,并且故意改变地址.
Java-通过在读取文本文件时覆盖而从文本文件中删除行
我正在尝试从文本文件中删除一行文本,而不将其复制到临时文件中。我正在尝试通过使用Printwriter和Scanner并让它们同时遍历文件来实现此目的,writer写Scanner读取的内容并用相同的东西覆盖每一行,直到到达我希望的行为止删除。然后,我前进扫描仪而不是写程序,然后像以前一样继续。这是代码:
但首先要使用参数:我的文件名是数字,因此它将显示为1.txt或2.txt等,因此f指定了文件名。我将其转换为文件的构造函数中的String。Int
n是我要删除的行的索引。
public void deleteLine(int f, int n){ try{ Scanner reader = new Scanner(new File(f+".txt")); PrintWriter writer = new PrintWriter(new FileWriter(new File(f+".txt")),false); for(int w=0; w<n; w++) writer.write(reader.nextLine()); reader.nextLine(); while(reader.hasNextLine()) writer.write(reader.nextLine()); } catch(Exception e){ System.err.println("Enjoy the stack trace!"); e.printStackTrace(); }}
它给了我奇怪的错误。它在堆栈跟踪中显示“
NoSuchElementException”和“未找到行”。它指向不同的线;似乎任何nextLine()调用都可以做到这一点。是否可以通过这种方式删除行?如果是这样,我在做什么错?如果没有,为什么?(顺便说一句,以防万一,如果您想要的话,文本文件大约有500行。不过,我不知道那是不是很大,甚至不重要。)
答案1
小编典典正如其他人指出的那样,如果程序可能会在中途崩溃,则使用临时文件可能会更好:
public static void removeNthLine(String f, int toRemove) throws IOException { File tmp = File.createTempFile("tmp", ""); BufferedReader br = new BufferedReader(new FileReader(f)); BufferedWriter bw = new BufferedWriter(new FileWriter(tmp)); for (int i = 0; i < toRemove; i++) bw.write(String.format("%s%n", br.readLine())); br.readLine(); String l; while (null != (l = br.readLine())) bw.write(String.format("%s%n", l)); br.close(); bw.close(); File oldFile = new File(f); if (oldFile.delete()) tmp.renameTo(oldFile);}
(请注意对编码,换行符和异常处理的草率处理。)
但是,我不喜欢用“ 我不会告诉您怎么做,因为您无论如何都不应该这样做 ”来回答问题。(例如,在某些其他情况下,您可能正在使用大于硬盘一半大小的文件!)
您需要使用RandomAccessFile
代替。使用此类,您可以使用同一对象读取和写入文件:
public static void removeNthLine(String f, int toRemove) throws IOException { RandomAccessFile raf = new RandomAccessFile(f, "rw"); // Leave the n first lines unchanged. for (int i = 0; i < toRemove; i++) raf.readLine(); // Shift remaining lines upwards. long writePos = raf.getFilePointer(); raf.readLine(); long readPos = raf.getFilePointer(); byte[] buf = new byte[1024]; int n; while (-1 != (n = raf.read(buf))) { raf.seek(writePos); raf.write(buf, 0, n); readPos += n; writePos += n; raf.seek(readPos); } raf.setLength(writePos); raf.close();}
java中写入文件时换行符是用”/r/n”还是”/n”?
java中写入文件时换行符是用"/r/n"还是"/n"?
/r 叫回车 Carriage Return
/n 叫新行 New Line
但是都会造成换行
使用 System.getProperty("line.separator")来获取当前OS的换行符,可以在调试的情况下看到!
各系统应当是:
/r Mac
/n Unix/Linux
/r/n Windows
这种输出的主要表现在用notepad打开时的显示。使用其他编辑器则没有明显变化!!
在winodws下,如果用"/n",则会显示成如下:
如果使用"/r/n",则会显示出换行的效果。
R:将“rmarkdown”转换为“html”文件
在 dashboard.Rmd
中保存文件后,点击 Knit -> Knit to flex_dasboard
这会在 RStudio 本身中打开仪表板模板。这还会在您的工作目录中自动创建一个具有相同名称 (dashboard.html
) 的 HTML 文件。
今天关于在C中读取文本文件时,如何阻止Windows C库将“ r n”转换为“ n”?和c读取文本文件内容的介绍到此结束,谢谢您的阅读,有关domain-name-system – 如何阻止Windows DNS服务器属性设置自行更改?、Java-通过在读取文本文件时覆盖而从文本文件中删除行、java中写入文件时换行符是用”/r/n”还是”/n”?、R:将“rmarkdown”转换为“html”文件等更多相关知识的信息可以在本站进行查询。
本文标签: